目录

使用十六进制和二进制表示法表示整数

将十六进制和二进制值表示为文本

将十六进制值构成的数组表示为文本

将二进制表示转换为十六进制表示

使用二进制值的按位运算


可以将数字表示为十六进制或二进制值。在某些情况下,这些表示方式更加方便。例如,可以使用二进制值来表示硬件寄存器的位。在MATLAB® 中,有两种方式来表示十六进制和二进制值:

  • 作为字面值。从 R2019b 开始,可以使用适当的前缀作为表示法,将十六进制和二进制值写成字面值。例如,字面值0x2A指定42,MATLAB 会将其存储为数字而不是文本。
  • 作为字符串或字符向量。例如,字符向量''2A将数字 42 表示为十六进制值。当使用文本表示十六进制或二进制值时,请用引号将它括起来。MATLAB 将这种表示存储为文本,而不是数字。

MATLAB 中的一些函数可用于将数字与其十六进制及二进制表示相互转换。

使用十六进制和二进制表示法表示整数

十六进制字面值以 0x 或 0X 前缀开头,而二进制字面值以0b或0B前缀开头。MATLAB 将采用这种表示法的数字存储为整数。例如,以下两个字面值都表示整数 42。

A = 0x2A
A = uint842B = 0b101010
B = uint842

当用此表示法表示数字时,不要用引号。使用 0-9、A-F 和 a-f 表示十六进制数字。使用 0 和 1 表示二进制数字。默认情况下,MATLAB 将数字存储为能够容纳它的最小无符号整数类型。但是,可以使用可选后缀来指定存储该值的整数类型。

  • 要指定无符号 8 位、16 位、32 位和 64 位整数类型,请使用后缀 u8、u16、u32 和 u64。

  • 要指定有符号 8 位、16 位、32 位和 64 位整数类型,请使用后缀 s8、s16、s32 和 s64。

例如,要存储为有符号 32 位整数的十六进制字面值的表示如下。

A = 0x2As32
A = int3242

指定有符号整数类型时,也可以将负数写作字面值。用 2 的补码形式表示负数。例如,可以使用后缀 s8 以字面值指定负数。

A = 0xFFs8
A = int8-1

将十六进制和二进制值表示为文本

还可以使用 dec2hex 和 dec2bin 函数将整数转换为字符向量,以十六进制或二进制值表示它们。将整数转换为十六进制。

hexStr = dec2hex(255)hexStr =
'FF'

将整数转换为二进制。

binStr = dec2bin(16)binStr =
'10000'

由于这些函数生成文本,因此当需要表示数值的文本时,可以使用这些函数。例如,可以将这些值追加到标题或图标签上,或将它们写入以十六进制或二进制表示形式存储数字的文件中。

将十六进制值构成的数组表示为文本

要将数值数组转换为文本,推荐的方法是使用compose 函数。此函数返回与输入数值数组大小相同的字符串数组。要生成十六进制格式,请使用 %X作为格式设定符。

A = [255 16 12 1024 137]
A = 1×5255          16          12        1024         137hexStr = compose("%X",A)
hexStr = 1x5 string array"FF"    "10"    "C"    "400"    "89"

dec2hex 和 dec2bin 函数还将数值数组转换为文本,以十六进制或二进制值表示它们。但是,这些函数返回字符数组,其中每行表示输入数值数组中的一个数字,必要时用零填充。

将二进制表示转换为十六进制表示

要将二进制值转换为十六进制值,请从二进制字面值开始,并将其转换为表示其十六进制值的文本。由于字面值会被解释为数字,可以将其直接指定为 dec2hex 的输入参数。

D = 0b1111;
hexStr = dec2hex(D)hexStr =
'F'

如果从十六进制字面值开始,则可以使用dec2bin将其转换为表示其二进制值的文本。

D = 0x8F;
binStr = dec2bin(D)binStr =
'10001111'

使用二进制值的按位运算

二进制数的一个典型用途是表示位。例如,许多设备都有寄存器,用于访问代表内存中数据或设备状态的位集合。当使用这样的硬件时,可以在 MATLAB 中使用数字来表示寄存器中的值。使用二进制值和按位运算来表示和访问特定位。创建一个表示 8 位寄存器的数字。从二进制表示开始很方便,但该数字是以整数形式存储的。

register = 0b10010110register = uint8150

要获取或设置特定位的值,请使用位运算。例如,使用 bitand 和 bitshift 函数获得第五位的值。(将该位移至第一个位置,以使 MATLAB 返回 0 或 1。在此示例中,第五位是 1。)

b5 = bitand(register,0b10000);b5 = bitshift(b5,-4)
b5 = uint81

要将第五位翻转为 0,请使用bitset函数。

register = bitset(register,5,0)register = uint8134

由于register是整数,请使用 dec2bin 函数以二进制格式显示所有位。binStr是字符向量,表示不带0b前缀的二进制值。

binStr = dec2bin(register)binStr =
'10000110'

Matlab中十六进制和二进制值数转换相关推荐

  1. matlab 符号值转为实数,Matlab:在实现二进制到实数转换的公式时,无法获得唯一的有理数Part1...

    存在非线性动态系统x_n = f(x_n,eta),其函数形式为x [n 1] = 2 * x [n] mod 1.这是一个混沌动力系统,称为锯齿图或伯努利图.我在实现Eq(4)和Eq(5)给出的逆映 ...

  2. matlab中读文件的行数_[转载]MATLAB中获取大型文本文件行数方法研究(转)

    在工作中会有很多特殊的需要,比如我现在就遇到一个需要将大型的文本格式数据文件(比如5G)读取到MATLAB中,同时进行一定的处理.由于XP的内存是绝对没有办法将5G的数据一次性加载到工作空间的,此时一 ...

  3. matlab中读文件的行数_【Matlab】 读取文件各种方法

    本技术支持指南主要处理:ASCII, binary, and MAT files.要得到MATLAB中可用来读写各种文件格式的完全函数列表,可以键入以下命令: help iofun MATLAB中有两 ...

  4. matlab中如何将Galois field array 转换 bin

    matlab中的纠错编码使用的数据类型是Galois field array,但我们有时候需要将其转换为其它数据类型,如bin.dec或double等.网上有很多转换方法,但都很复杂.实际上这个转换非 ...

  5. matlab中读文件的行数_Matlab中读取txt文件的几种方法

    Matlab中读取txt文件的几种方法 一.纯数据文件(没有字母和中文,纯数字) 对于这种txt文档,从matalb中读取就简单多了 例如test.txt文件,内容为"17.901 -1.1 ...

  6. 二进制与十进制、八进制、十六进制相互转换,八进制与十六进制以二进制为跳板转换(8421法则)

    C语言中相关进制表示: 十进制 以正常数字1-9开头,如123 八进制 以数字0开头,如0123 十六进制 以0x开头,如0x123 二进制 C语言不能直接书写二进制数 1. 二进制与十进制相互转换 ...

  7. 在C语言中十六进制与十进制的互相转换

    十六进制,"逢十六进一".十六进制用的很多(比如:内存址.区块链地址等),最好熟练掌握. 在C语言中可以这样表示十六进制: singed int x1 = 0x22D; //0x或 ...

  8. matlab 16位灰度值转8位,在matlab中如何将灰度值为24位的转化为8?

    我使用的是Visual c++6.0技术内幕里提供的类CDib来操作位图,最好提供可以两个独立的函数来分辨别实现着俩个功能.他们可以作为CDib类的成员函数来使用.类似下面的这个就可以,我用了下面的这 ...

  9. MATLAB中如何让分度值小点,实验6 干涉的matlab模拟.doc

    实验6 干涉的matlab模拟.doc MATLAB在光信息处理中的应用课程上机实验(三峡大学2013年)实验6干涉的MATLAB模拟一.实验目的掌握双缝干涉.牛顿环的MATLAB模拟.二.实验内容1 ...

最新文章

  1. keil复制代码乱码_win7系统下Keil复制中文注释到记事本出现乱码的解决方法
  2. Android 高级自定义View实战
  3. 为了30分钟配送,盒马工程师都有哪些“神操作”?
  4. P2485-[SDOI2011]计算器【BSGS,exgcd,快速幂】
  5. 《走遍中国》珍藏版(十三)
  6. linux如何批量导出文件格式,Linux下批量将md文件转换为html文件
  7. 19 FI配置-财务会计-定义销售/采购税代码
  8. THINKPHP3文件缓存管理
  9. 不知道如何实现服务的动态发现?快来看看 Dubbo 是如何做到的
  10. 服装计算机辅助设计论文,计算机辅助高校服装设计论文
  11. 如何在 Spring Boot 优雅关闭加入一些自定义机制
  12. 【网易笔试】小易最近在数学课上学习到了集合的概念
  13. 找到的一个关于银行的介绍
  14. 外国人怎么样学计算机,适合外国人学中文的打字法
  15. Java编程那些事儿70——抽象类和接口(三)
  16. Openstack之Keystone组件解析
  17. 心理学导论--- 1 心理学在搞什么
  18. tesserocr识别图片
  19. 区块链笔记:技术栈、对等网络、密码技术、账户模型、网络共识、脚本系统、扩展技术
  20. 智能实验室-专用链转换 1.5.0.150

热门文章

  1. 装箱问题 动态规划 java_[动态规划]装箱问题
  2. 如何选择大数据存储查询引擎
  3. 将字符转换为16进制数
  4. Viewpager + 小点点导航的具体实现
  5. ARM学习笔记 计算机结构 总线 南北桥
  6. 在嵌入式系统中使用opkg做版本升级
  7. 中科柏诚布局信创产业,护航信创产品安全
  8. Python爬虫图片学习(一)
  9. tp5 阿里大于短信
  10. python蚂蚁森林自动偷能量_介绍两种实现蚂蚁森林自动“偷”能量的方法