Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/147.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 字节翻转和字节交换之间的区别_C++_Byte - Fatal编程技术网

C++ 字节翻转和字节交换之间的区别

C++ 字节翻转和字节交换之间的区别,c++,byte,C++,Byte,我正试图找到不同之处,因为我在Mac电脑上的计算器中看到的字节翻转功能与程序员的观点不同 所以我写了一个程序来交换一个值,我们从小到大端,或者反过来,我称之为字节交换。但当我看到字节翻转时,我不明白它到底是什么,它与字节交换有何不同。我确实证实了结果是不同的 例如,对于值为12976128的int 字节翻转给我198; 字节交换给我50688 我想实现一个字节翻转算法,因为198是我在读东西时想要得到的值。谷歌上的任何东西都说byte flip找到了有帮助的字节交换,但我并不这么认为。byte

我正试图找到不同之处,因为我在Mac电脑上的计算器中看到的字节翻转功能与程序员的观点不同

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

例如,对于值为12976128的int

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


我想实现一个字节翻转算法,因为198是我在读东西时想要得到的值。谷歌上的任何东西都说byte flip找到了有帮助的字节交换,但我并不这么认为。

byte flip和byte swap是同义词

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

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

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

3字节交换后:0x0000C6=198


4字节交换后:0x0000C600=50688

将数字转换为十六进制,它将被清除。12976128=0xC60000,198=0xC6,50688=0xC600