十六进制和二进制值

您可以表示数字为十六进制或二进制值。在某些情况下,数字的这些表示都比较方便。例如,可以使用表示二进制值的硬件寄存器的比特。在MATLAB®,有两种方法来表示十六进制和二进制值:

  • 文字。在R2019b开始,你可以写十六进制和二进制值使用适当的前缀作为符号文字。例如,0x2A是一个指定42的文字,MATLAB将其存储为一个数字,为文本。

  • 作为字符串或字符向量。例如,字符向量'2A'将数字42表示为十六进制值。当使用文本表示十六进制或二进制值时,将其括在引号中。MATLAB将这种表示形式存储为文本,而不是数字。

MATLAB进行数字转换,并从他们的十六进制和二进制表示提供多种功能。

使用十六进制和二进制记数法写整数

十六进制文字先从0X0X前缀,而二进制文字先从0B0B字首。MATLAB存储与这个符号为整数写的号码。例如,这两个文字都表示整数42

一个= 0 x2a
A =UINT842
B = 0 b101010
B =UINT842

当你写使用此表示的数字,不要使用引号。用0-9一个-F,一个-F代表十六进制数字。用01表示二进制数字。

默认情况下,MATLAB将该数字存储为能够容纳该数字的最小无符号整数类型。但是,您可以使用可选的后缀来指定存储值的整数类型。

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

  • 要指定有符号的8-、16-、32-和64位整数类型,请使用后缀S8s16S32,S64

例如,写一个十六进制文字将被存储为一个符号的32位整数。

A = 0x2As32
A =int3242

如果指定整数类型的签署,您可以编写表示负数文字。在二进制补码形式表示负数。例如,指定与使用文字的负数S8后缀。

A = 0xFFs8
A =INT81

因为MATLAB将这些文字存储为数字,所以您可以在使用数值数组的任何上下文中或函数中使用它们。

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

您还可以将代表他们为十六进制整数特征向量或使用二进制值dec2hexdec2bin功能。转换为十六进制整数。

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”

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

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

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

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

如果你开始用十六进制文字,那么你可以将其转换为文本表示使用它的二进制值dec2bin

d =值为0x8F;binStr = DEC2BIN(d)
binStr = '10001111'

二进制值的按位操作

一个典型的用二进制数的就是代表位。例如,许多设备具有提供访问表示存储器或数据装置的状态位的集合的寄存器。当这样的硬件,则可以使用数字在MATLAB来表示一个寄存器中的值。使用二进制值和位运算来代表和访问特定的位。

创建一个数字,表示一个8位寄存器。是很方便的开始与二进制表示,但数量被存储为一个整数。

注册= 0 b10010110
注册=UINT8150

要获取或设置特定的位,使用按位运算的值。例如,使用BITAND位位移函数来获得第五位的值。(移位到第一位置,以使得MATLAB返回一个01。在该示例中,第五位是1)。

B5 = BITAND(寄存器,0b10000);B5 =位位移(B5,-4)
b5 =UINT81

将第5位翻转到0, 使用位集合函数。

= bitset注册(注册5 0)
注册=UINT8134

寄存器是一个整数,则使用dec2bin函数以二进制格式显示所有位。binStr是一个字符向量,并且代表二进制值不带前导0B字首。

binStr = DEC2BIN(寄存器)
binStr = '10000110'

也可以看看

||||||||

相关的话题

外部网站