一、将两个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位