罗兰谈MATLAB的艺术

将想法转化为MATLAB

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

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

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

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

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

内容

输入十六进制和二进制值

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

我们一直都能这样做:

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

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

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

Buint8 = uint8(B)
Buint8 = uint8 3

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

D = 0X11 E = 0xF3f F = 0b10001 .使用实例
D = uint8 17 E = uint16 3903 F = uint8 17

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

G = 0x2As32
G = int32 42

然后你也可以表示负数。

H = 0xFFs8
H = int8 -1

这些在二补体形式

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

将值表示为文本

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

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

|

评论

如欲留言,请点击在这里登录您的MathWorks帐户或创建一个新帐户。