您可以表示数字为十六进制或二进制值。在某些情况下,数字的这些表示都比较方便。例如,可以使用表示二进制值的硬件寄存器的比特。在MATLAB®,有两种方法来表示十六进制和二进制值:
如文字。在R2019b开始,你可以写十六进制和二进制值使用适当的前缀作为符号文字。例如,0x2A
是文字,指定42和MATLAB将其存储为一个数字,不为文本。
作为字符串或字符向量。例如,字符向量'2A'
表示为十六进制值的数量42。当您使用文本表示一个十六进制或二进制值,它括在引号。MATLAB存储此表示为文本,而不是数字。
MATLAB进行数字转换,并从他们的十六进制和二进制表示提供多种功能。
十六进制文字先从0X
要么0X
前缀,而二进制文字先从0B
要么0B
字首。MATLAB存储与这个符号为整数写的号码。例如,这两个文字都表示整数42
。
A = 0x2A
A =UINT842
B = 0b101010
B =UINT842
当你写使用此表示的数字,不要使用引号。采用0
-9
,一个
-F
和一个
-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
如果指定整数类型的签署,您可以编写表示负数文字。在二进制补码形式表示负数。例如,指定与使用文字的负数S8
后缀。
A = 0xFFs8
A =INT8-1
由于MATLAB存储这些文字为数字,你可以在任何情况下或在您使用数字阵列功能使用它们。
您还可以将代表他们为十六进制整数特征向量或使用二进制值DEC2HEX
和DEC2BIN
功能。转换为十六进制整数。
hexStr = DEC2HEX(255)
hexStr = 'FF'
转换为二进制整数。
binStr = DEC2BIN(16)
binStr = '10000'
由于这些功能产生的文字,使用它们,当你需要的文字表示的数值。例如,您可以将这些值标题或情节标签,或将其写入文件,用于存储数字作为其十六进制或二进制表示。
以数字的数组转换为文本推荐的方法是使用撰写
功能。该函数返回具有的尺寸与输入的数字数组相同的字符串数组。为了生产十六进制格式,使用%X
作为格式说明。
A = [255 16 12 1024 137]
A =1×5255 16 12 1024 137
hexStr =撰写(“%X”,一个)
hexStr =1×5串“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位寄存器。是很方便的开始与二进制表示,但数量被存储为一个整数。
寄存器= 0b10010110
注册=UINT8150
要获取或设置特定的位,使用按位运算的值。例如,使用BITAND
和位位移
函数来获得第五位的值。(移位到第一位置,以使得MATLAB返回一个0
要么1
。在该示例中,第五位是1
。)
B5 = BITAND(寄存器,0b10000);B5 =位位移(B5,-4)
B5 =UINT81
要翻转第五位0
, 使用位集合
功能。
寄存器=位集合(寄存器,5,0)
注册=UINT8134
以来寄存器
是一个整数,则使用DEC2BIN
函数来显示在二进制格式的所有位。binStr
是一个字符向量,并且代表二进制值不带前导0B
字首。
binStr = DEC2BIN(寄存器)
binStr = '10000110'
BIN2DEC
|BITAND
|位集合
|位位移
|DEC2BIN
|DEC2HEX
|HEX2DEC
|的sprintf
|sscanf的