您可以将数字表示为十六进制或二进制值。在某些情况下,这些表示方式更加方便。例如,您可以使用二进制值来表示硬件寄存器的位。在 MATLAB® 中,有两种方式来表示十六进制和二进制值:
使用十六进制和二进制表示法表示整数
十六进制字面值以
0x
或
0X
前缀开头,而二进制字面值以
0b
或
0B
前缀开头。MATLAB 将采用这种表示法的数字存储为整数。例如,以下两个字面值都表示整数
42
。
当您用此表示法表示数字时,不要用引号。使用
0
-
9
、
A
-
F
和
a
-
f
表示十六进制数字。使用
0
和
1
表示二进制数字。
默认情况下,MATLAB 将数字存储为能够容纳它的最小无符号整数类型。但是,您可以使用可选后缀来指定存储该值的整数类型。
例如,要存储为有符号 32 位整数的十六进制字面值的表示如下。
指定有符号整数类型时,您也可以将负数写作字面值。用 2 的补码形式表示负数。例如,您可以使用后缀
s8
以字面值指定负数。
由于 MATLAB 将这些字面值存储为数字,因此您可以在任何使用数值数组的上下文或函数中使用它们。
将十六进制和二进制值表示为文本
您还可以使用
dec2hex
和
dec2bin
函数将整数转换为字符向量,以十六进制或二进制值表示它们。将整数转换为十六进制。
将整数转换为二进制。
由于这些函数生成文本,因此当您需要表示数值的文本时,可以使用这些函数。例如,您可以将这些值追加到标题或图标签上,或将它们写入以十六进制或二进制表示形式存储数字的文件中。
将十六进制值构成的数组表示为文本
要将数值数组转换为文本,推荐的方法是使用
compose
函数。此函数返回与输入数值数组大小相同的字符串数组。要生成十六进制格式,请使用
%X
作为格式设定符。
A = 1×5
255 16 12 1024 137
hexStr = 1x5 string
"FF" "10" "C" "400" "89"
dec2hex
和
dec2bin
函数还将数值数组转换为文本,以十六进制或二进制值表示它们。但是,这些函数返回字符数组,其中每行表示输入数值数组中的一个数字,必要时用零填充。
将二进制表示转换为十六进制表示
要将二进制值转换为十六进制值,请从二进制字面值开始,并将其转换为表示其十六进制值的文本。由于字面值会被解释为数字,您可以将其直接指定为
dec2hex
的输入参数。
如果从十六进制字面值开始,则可以使用
dec2bin
将其转换为表示其二进制值的文本。
使用二进制值的按位运算
二进制数的一个典型用途是表示位。例如,许多设备都有寄存器,用于访问代表内存中数据或设备状态的位集合。当使用这样的硬件时,您可以在 MATLAB 中使用数字来表示寄存器中的值。使用二进制值和按位运算来表示和访问特定位。
创建一个表示 8 位寄存器的数字。从二进制表示开始很方便,但该数字是以整数形式存储的。
要获取或设置特定位的值,请使用位运算。例如,使用
bitand
和
bitshift
函数获得第五位的值。(将该位移至第一个位置,以使 MATLAB 返回
0
或
1
。在此示例中,第五位是
1
。)
要将第五位翻转为
0
,请使用
bitset
函数。
由于
register
是整数,请使用
dec2bin
函数以二进制格式显示所有位。
binStr
是字符向量,表示不带
0b
前缀的二进制值。
binStr =
'10000110'
另请参阅
bin2dec
| bitand
| bitshift
| bitset
| dec2bin
| dec2hex
| hex2dec
| sprintf
| sscanf
相关主题
外部网站
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window.
Web browsers do not support MATLAB commands.
MathWorks
Accelerating the pace of engineering and science
MathWorks is the leading developer of mathematical computing software for engineers and scientists.
Discover...