一、将两个8位数据合并成一个16位数据。
一个8位数据不管往左移还是往右移,移完后还是8位。所以从一开始要把这个8位的数定义为16位的数。
unsigned short int a;
unsigned short int b;
unsigned short int c;
a=0xFF;
b=0x11;
c=(a<<8)|b; //a放在高8位,b放在低8位
printf(“%d”,c);
那么c就是合并后的16位数, 经过计算c是0xFF11,它的十进制输出是65297,注意溢出。
二、将一个16位数据拆分成两个8位的数。
unsigned short int c;
unsigned short int a;
unsigned short int b;
c=0xFF11;//拆分它
a=(c>>8)&0xFF;//a是高8位
b=c&0xFF; //b是低8位
本文介绍了如何将两个8位数据合并成一个16位数据,以及如何将16位数据拆分为两个8位数据。通过示例代码展示了使用位移和位运算实现这一过程,同时解释了数据溢出的概念。此外,还提供了合并和拆分的C语言实现代码。
2661

被折叠的 条评论
为什么被折叠?



