用无符号整数中的另一个字节替换第n个字节

时间:2017-02-21 03:17:16

标签: c

我想用b替换a的字节。

unsigned int a = 0x12dc4430;
unsigned char b = 0xcb;

如何用b替换a的第1和第3个字节?

像这样: 对于第一个重要字节

12dc33cb

和第3个重要字节

12cb4430 

1 个答案:

答案 0 :(得分:3)

不确定“第1和第3字节”是什么意思,但假设你的意思是最重要的字节,第3个字节是最重要的字节:

unsigned int a = 0x12dc4430;
unsigned char b = 0xcb;
a = (a & 0x00ff00ff) | (b << 8) | (b << 24);
printf("%x\n", a);

打印cbdccb30