以下代码在变量中设置一个值,然后使用按位运算符来反转十六进制数字的序列。
示例代码
#include <stdio.h>
int main(void)
{
unsigned int original = 0xDEAD;
unsigned int result = 0;
unsigned int mask = 0xF; // 最右边的四位
printf("
original = %X", original);
// 在 result 中插入第一个数字
result |= original & mask; // 在结果中放右4位
// 得到第二个数字
original >>= 4; // 原来右转四个位置
result <<= 4; // 为下一个数字腾出空间
result |= original & mask; // 在结果中放右4位
/* 得到第三个数字 */
original >>= 4; // 原来右转四个位置
result <<= 4; // 为下一个数字腾出空间
result |= original & mask; // 在结果中放右4位
printf("\\t result = %X
", result);
return 0;
}
执行上面示例代码,得到以下结果:
hema@ubuntu:~/book$ gcc main.c
hema@ubuntu:~/book$ ./a.out
original = DEAD result = DAE