我需要编写一个函数将C中的大端转换为小端。我不能使用任何库函数。
发布于 2018-02-28 08:47:08
假设你需要的是一个简单的字节交换,
无符号16位转换:
swapped = (num>>8) | (num<<8);
无符号32位转换:
swapped = ((num>>24)&0xff) | // move byte 3 to byte 0
((num<<8)&0xff0000) | // move byte 1 to byte 2
((num>>8)&0xff00) | // move byte 2 to byte 1
((num<<24)&0xff000000); // byte 0 to byte 3
发布于 2018-02-28 09:55:48
通过包含
#include <byteswap.h>
可以获得机器相关字节交换功能的优化版本。然后,可以轻松使用以下函数:
__bswap_32 (uint32_t input)
要么
__bswap_16 (uint16_t input)
https://stackoverflow.com/questions/-100003524
复制相似问题