【发布时间】:2014-01-29 01:27:00
【问题描述】:
我想反转十六进制数的字节,例如:
0x08090a0b 应转换为 0x0b0a0908。
我用过这个宏。
#define REV(X) ((X << 24) | (((X>>16)<<24)>>16) | (((X<<16)>>24)<<16) | (X>>24))
【问题讨论】:
-
那么你实现了你想要的吗?
-
这个问题真的和取反一个整数不同吗?
-
问题是什么?只有在
sizeof(X) > 4或 X 签名时,我才能看到这种方法的问题。 -
你能给我们一些解决方案的限制吗?这是任意长度的十六进制数吗?它是作为字符串输入的,还是作为整数输入的?我想你的问题已经被问过,并且给出了一个很好的答案:stackoverflow.com/a/2182184/1967396
-
解决方案没有限制。我只想反转 32 位整数的字节。输入是整数,输出也是整数。
标签: c