0

我试图找出我在 Mac 上的计算器中看到的字节翻转功能的差异,以及程序员的视图。

所以我写了一个程序来字节交换一个值,我们这样做是为了从小端到大端或其他方式,我称之为字节交换。但是当我看到字节翻转时,我不明白它到底是什么以及它与字节交换有何不同。我确实证实了结果是不同的。

例如,对于值为 12976128 的 int

字节翻转给我 198;字节交换给了我 50688。

我想实现一个字节翻转算法,因为 198 是我在阅读内容时想要获得的值。谷歌上的任何内容都说字节翻转找到了帮助字节交换,这对我来说不是这种情况。

4

1 回答 1

3

字节翻转和字节交换是同义词。

您看到的结果只是交换字节的两种不同方式,具体取决于您将数字视为 32 位数字(由 4 个字节组成),还是可以容纳 12976128 的数字的最小大小,即 24 位或 3 个字节。

4 字节交换在计算机文化中更为常见,因为 32 位处理器目前占主导地位(即使 64 位架构仍然以 32 位数字进行大部分数学运算,部分原因是向后兼容的软件基础架构,部分原因是它足以满足许多实际用途)。但是 Mac 计算器似乎使用最小宽度交换,在本例中为 3 字节交换。

12976128 转换为十六进制时,为您提供 0xC60000。总共 3 个字节;每个十六进制数字为 4 位,或半字节宽。要交换的字节是 0xC6、零和另一个零。

3字节交换后:0x0000C6 = 198

4字节交换后:0x0000C600 = 50688

于 2013-04-04T19:40:45.853 回答