如何用c语言交换十六进制数?

时间:2011-06-09 13:05:07

标签: c hex

如何用c语言交换以下两个十六进制数字?例如:

输入:0xabcd
输出:0xcdab

3 个答案:

答案 0 :(得分:2)

您可以使用以下内容:

#include <stdio.h>
int main (void) {
    unsigned int from = 0xabcd;
    unsigned int to = ((from & 0xff) << 8) | (from >> 8);
    printf ("%04x\n", to);
    return 0;
}

这会交换两个字节,输出为cdab

答案 1 :(得分:0)

什么平台? Windows提供各种大小的_byte_swap。否则你可以稍微改变它。

答案 2 :(得分:-2)

我的一位教授向我展示了这种用于交换整数的小巧技巧,我总是觉得优雅:

int x = 5;
int y = 7;
x = x ^ y;
y = x ^ y;
x = x ^ y; // x = 7, y = 5