0x 代表 8 位,那么 7 位用什么表示?

0x 代表 8 位,那么 7 位用什么表示?

我正在写一些技术文档,并描述 I2c 7 位寻址模式的格式。这也与 ASCII 7 位编码有关,但这只是旁注。

I2c 使用 7 位(或 10 位,此处未讨论)来寻址从设备。7 位地址后面是另一个位,用于指示从设备读取或写入。

发送地址时会传输 8 位,但实际上是 7 位加上方向位 (R/w#)。

我的问题:如果使用 0x 来描述基数为 16、十六进制、八位字节,那么用什么来描述基数为 15(呃五进制?)的七位字节?也许这个词字节这里也是不正确的。

我知道 0x 也用于描述 16 位字,但从逻辑上讲,它们实际上是两个 8 位字节在一起,所以 0x 感觉没问题。

注:我是从这里

标记。

答案1

您说得不太对。我们用0x来表示以十六进制(基数为 16)表示的数字。在任意长度的数字前使用它都是完全没问题的0x,只要您以 16 为基数来表示它们即可。

如果您看到“0x1”,则就像看到 1 一样。它可能是一个 1 位。它可能是一个字节。它可能为任意长度。“0x”并不表示特定长度。

答案2

Base15 并不意味着 7 位字节。这两个概念毫无关系……

7 位字节就是这样的。最高有效位未被使用的字节。
使用带有 0x 前缀的十六进制表示法来显示存储在这种 7 位字节中的值没有任何问题,只要您明确表示只有 7 位有效即可。(换句话说:0x0* 到 0x7*,0x8* 及更高的数字未被使用。)

据我所知,对此没有任何特殊符号。
我已经编程 30 多年了,过去这些 7 位系统比现在更常见。如果有特殊符号,我肯定会在某个时候遇到它,但我从未遇到过。

相关内容