我试图找到我在Mac上的计算器视图中看到的字节翻转功能的差异becoz。
所以我写了一个程序来字节交换一个值,我们做的是从小端到大端或其他方式,我称之为字节交换。但是当我看到字节翻转时,我不明白究竟是什么,它与字节交换有什么不同。我确认结果不同。
例如,对于值为12976128的int
Byte Flip给了我198; 字节交换给了我50688。
我想实现一个字节翻转算法,因为198是我想要读取内容时得到的值。谷歌上的任何内容都说字节翻转创建了帮助字节交换,这对我来说就是这种情况。
答案 0 :(得分:2)
字节翻转和字节交换是同义词。
您看到的结果只是交换字节的两种不同方式,具体取决于您是将数字看作是32位数字(由4个字节组成),还是作为可容纳12976128的数字的最小大小,是24位或3个字节。
4字节交换在计算机文化中更常见,因为32位处理器目前占主导地位(即使64位架构仍然以32位数字执行大部分数学运算,部分原因是向后兼容的软件基础设施,部分原因是它足以用于许多实际目的)。但Mac计算器似乎使用最小宽度交换,在这种情况下是3字节交换。12976128,转换为十六进制时,为您提供0xC60000。总共3个字节;每个十六进制数字是4位,或半个字节宽。要交换的字节是0xC6,零和另一个零。
3byte swap后:0x0000C6 = 198
4byte swap后:0x0000C600 = 50688