这些操作都是针对于二进制位而言的算法, >>8 表示的是右移8位(就相当于去掉了低八位) &表示的是按位与 ( 将数值转化为二进制进行与操作 ) 0xff是两位的十六进制相当于全是 1 的 8 位二进制数, 运算结果就是低八位
c语言
#include <stdio.h>
#include <stdlib.h>
char right,left,temp;//right表示第八位,left表示高八位
int size_right,size_left,size_temp;
short int number,size_number;
short int number_two,number_three;
//int 是四个字节 short int 是两个字节
int main()
{
number =32343; //65536个数范围是 -32768-32767
right = number&0XFF;//低八位
left = number>>8;//高八位
// 前取高八位,在取低八位
left=(number>>8)&0XFF; //先取高八位
right=number&0XFF; //再取第八位
// 现在要把高八位和第八位合并
number_three=left;
number_three<<=8;
number_three|=right;
printf("number_three=%d",number_three);
return 0;
}
c#语言
int a = 1023;
int right = a & 0x00ff; // 低八位
int left = a >> 8; // 高八位
int number_three = left;
number_three <<= 8;
number_three |= right;
MessageBox.Show(number_three.ToString());