罗兰对MATLAB的艺术

将想法转化为MATLAB

请注意

罗兰对MATLAB的艺术已存档,不会更新。

十六进制和二进制数字前沿新闻

我相信你们以前都听过这个笑话:

世界上有10种人懂二进制的和不懂二进制的

顺便说一下,笑话第一行第三个符号的正确发音是“two”,不是“ten”。十六进制“等效”有点粗鲁,所以我不会在这里发布。

好吧,现在不是开玩笑了。我们现在已经开始认真地帮助您读取或指定十六进制和二进制值,并且现在涵盖了更广泛的范围(即负十六进制)。让我再告诉你一点。

内容

输入十六进制和二进制值

我自己不怎么使用十六进制和二进制数据,但有很多人这样做。我们最近对如何帮助您处理此类数据进行了一些更新。看在这里有关详细信息。

我们一直都能做到:

A = 0.25 B = 3 C = 1/pi
A = 0.2500 b = 3 c = 0.3183

这些都是MATLAB中的双精度值。

B可以用整数形式表示。要在MATLAB中做到这一点,您可以转换,或者您可以从其他文件格式读取值,并指定整数类型以读取某些位。

int (B) = int (B)
3 . int8 = int8

现在,直接在MATLAB中输入十六进制或二进制值非常容易。

D = 0X11 E = 0xF3f F = 0b10001
D = uint8 17 E = uint16 3903

也可以使用带符号的类型。

G = 0x2As32
G = int32 42

然后你也可以表示负数。

H = 0xFFs8
H = int8 -1

这些在二元补体形式

由于MATLAB将这些字面值存储为数字,因此您可以在任何可以使用传统数字数组的地方使用这些数组。

将值表示为文本

使用dec2hexdec2bin将值转换为等效的十六进制或二进制文本。它们存储在字符数组中,现在可以处理负值。

Dec2hex (17) dec2bin(17) Dec2hex (-17) dec2bin(-17)
ans = '11' ans = '10001' ans = 'EF' ans = '11101111'

这些先前的值可能对注释有用。但是,将值转换为十六进制或二进制文本的最佳方法是使用组成,你得到字符串输出。

组成(“X %”, D, E, F, G, H))
ans = 1×5字符串数组"11" "FF" "11" "2A" "0"

您还可以在读取函数中使用格式说明符来读取以文字(十六进制或二进制)表示的数据。

二进制值的按位操作

你可能想要一点一点地处理二进制数。对于与硬件交互的某些方面来说,这通常是正确的(我几乎不是这方面的专家!)这些函数包括

总结

这里有更多关于按位操作。这会让你的生活更轻松吗?让我们知道在这里




用MATLAB®R2020a发布


댓글

■■■■■■■■링크大黄蜂:大黄蜂:大黄蜂:大黄蜂:大黄蜂