这些操作都是针对于二进制位而言的算法, >>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());