字节翻转和字节交换的区别

Difference between byte flip and byte swap

本文关键字:字节 区别 翻转 交换      更新时间:2023-10-16

我正试图找到差异,因为我在Mac上的计算器中看到的字节翻转功能。

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

例如,对于值为12976128的int

Byte Flip给我198;字节交换得到50688。

我想实现一个字节翻转算法,因为198是我想在读取时得到的值。在谷歌上任何说字节翻转的东西都会找到帮助字节交换,但对我来说不是这样。

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

你看到的结果只是两种不同的字节交换方式,这取决于你是把这个数字看作一个32位的数字(由4个字节组成),还是作为一个可以容纳12976128的最小的数字,它是24位或3个字节。

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

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

3byte后:0x0000C6 = 198

4byte后:0x0000C600 = 50688