16进制数的低八位是什么,高八位又是什么?
我用C语言来回答这个问题。16位就是一个2字节整数。
unsigned short hex=0x1234;//定义一个2字节整数
unsigned char low = hex & 0xff; //取低8位 也就是0x34
unsigned char hight = hex >> 8; //取高8位 也就是0x12
printf("low=0x%x,hight=0x%x\n",low,hight);//打印结果就是low=0x34,hight=0x12
扩展资料
不管是16进制数,还是八进制数,还是十进制数。它们只是对于我们的显示形式不同,对于计算机来说它就是一串0和1的二进制数。
解答这道题主要用到了按位与功能和循环右移功能。
按位与:0与1等于0,0与0等于0,1与1等于1
比如:
0x1234,二进制形式就是,0001001000110100
0x00FF,二进制形式就是,0000000011111111
这两个数相与就等于,0000000000110100,16进制数就是0x34
循环右移:就是二进制数低位向右移动,高位补0
比如:
0x1234,二进制形式就是,0001001000110100
向右移动8位 ,二进制形式就是,0000000000010010,16进制数就是0x12