我用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
取高八位直接移位会不好,好像叫什么标志寄存器的吧!不过就你解决的最好给你分了
追答#include
void main()
{ int temp=0x8235;
short Hvalue = get_Hvalue(temp);
short Lvalue = get_Lvalue(temp);
printf(“High 8 Bits:%d, Low 8 Bits:%d \r\n”,Hvalue,Lvalue);
}
short get_Hvalue(int u16)
{
short Hvalue=0; //high 8 bits
Hvalue = (short)(u16>>8); // get high 8 bits;
return Hvalue;
}
short get_Lvalue(int u16)
{
int Lvalue=0; // low 8 bits
Lvalue= (short)(u16 & 0xff); //get low 8 bits;
return Lvalue;
}
16位16进制数怎么取前8位和后8位
我用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);\/\/打印结果...
16进制高8位.低8位.取出来后.怎么求原值
高八位左移八位 或 低八位
16进制怎么取值高8位低8位 算法
高八位:(A&0xff00)>>8 低八位:A&0xff
C51单片机相关问题,哪位大神能给我解释一下面这个高八位和低八位?
P1=s>>8; \/\/这样写你应该可以理解了 P0=s; \/\/一个16位数直接赋值给8位变量,潜规则就是只取低八位。}
C语言中用什么方法取出一个16位数的前8位?
~~~用移位符"<<"比如说这样:int main(){ long a=0x6543,b; \/\/定义a为16位们的二进制数(用16进制表示)b=a>>8; \/\/把a的二进制值的后8位移走,就剩前8位了 printf("a=%x\\nb=%x\\n",b); \/\/打印出移位前和移位后的十六进制值.return 0;} 参考资料:呵呵,你咋问了两遍啊......
单片机从上位机接受的十六进制字符串,比如1234,怎么从里面提取出0x12...
取x的前8位: x = (x & 0xff00)>>8;取x的后8位: x &= 0x00ff;但x必须是16位的数据,不然绝对是取不出前8位的。你程序有这个问题。
C语言中用什么方法可以取出一个16二进制位数的前8位
用移位符"<<"比如说这样:int main(){ long a=0x6543,b; \/\/定义a为16位们的二进制数(用16进制表示)b=a>>8; \/\/把a的二进制值的后8位移走,就剩前8位了 printf("a=%x\\nb=%x\\n",b); \/\/打印出移位前和移位后的十六进制值.return 0;} ...
16进制低八位
一个十六进制可以看做四个数组成,不足四位数前面补位0,11d可以转化为:011d 前两个为高八位数:01,后面两个为低八位:1d 下面可以用计算器验证:看图,11D二进制为 0000 0001 0001 1101 遵循高位在前的原则,即低八位为 0001 1101
C语言中什么叫做高八位和低八位啊?
高八位和低八位:内存里,一个单元是一个字节,也就是8位。如果是16位的指令,就是同时操作连续的2个内存地址,将这连续的2个内存地址当成一个单位,所以就有高8位和低8位之分。由于计算机仅识别二进制描述的数字,所以对一个内存地址,也就是8位二进制,如:0000 0001,0000就是高四位,0001就...
16进制运算规则是什么?
A是十,加起来是二十五,在十六进制中,满十六进一,二十五在十六进制中就是19,所以个位是9,进1,3+4+1=8,最后等于十六进制89。十六进制(简写为hex或下标16)在数学中是一种逢16进1的进位制。一般用数字0到9和字母A到F(或a~f)表示,其中:A~F表示10~15,这些称作十六进制数字。