『壹』 C语言中高8位低8位问题
把8位二进制赋值给16位二进制的丛喊时候,要进行高位枝郑渣扩展猛悄。
例如把0xxxxxxx赋值给16位变量的结果是00000000 0xxxxxxx
再入把1xxxxxxx赋值给16位变量的结果是11111111 1xxxxxxx
所以,你看看下面的程序:
main()
{
char c='\376';
int i=c;
printf("c=%d,i=%d\n",c,i);
}
允许的结果是:
c=-2,i=-2
你能够理解吧。
『贰』 c++程序“低八位”有一句不理解
还是以十进制整数2010为例吧,它的二进制数为11111011010B,如果要取该数的低八位,需要用到逻辑与运饥悔算。我们知道,与运算的规则是 0&0=0 0&1=0 1&0=0 1&1=1,烂昌正只有当相与迅逗的位都为1时结果才为1。所以要提取它的低八位,只需要该数与上1111111B(即十六进制的0xFF)。2010二进制为11位,与运算时11111111B位数不足,高位自动补零凑足11位,成为00011111111B
11111011010
与 00011111111
--------------------------
00011011010
结果为00011011010,即11011010B,即218
因此cout<<(i&0X0FF)<<endl; 的含义是:得到i&0xFF取低八位的结果,输出到屏幕,再输出一个回车
『叁』 C语言中什么叫做高八位和低八位啊
高八位和低八位:内存里,一个单元是一个字节,也升迅竖就是8位。如果是16位的指令,就是同时操作连续昌裂的2个内存地址,将这连续的2个内存地址当成一个单位,所以就有高8位和低8位之分。
由于计算机仅识别二进制描述的数字,所以对一个内存地址,也就是8位二进制,如:0000 0001,0000就是高四位,0001就是低四位。
当然2个内存地址,就是16位二进制,也就是:0000 0001 0000 0002。0000 0001 就是高八位,0000 0002就是低八位。
每个八位中又分成高低四位。如:1010 0001 1111 0101,换算成16进制就是:1010–10(10进制)—A(16进制),0001–1(10进制)—1(16进制)所以他的高八位就是A1,同样它的低八位就是F5。
(3)gb码8位低八位怎么编程扩展阅读:
如何在C语言中的ascII码表里查找高四位、低吵大四位:
ascii码在C语言中用char型存储,一个char占一个字节,即8位。
当写成二进制表达形式时,就是8个0或者1的数字,这8个数字中,左边四个称为高四位,右边四个称为低四位。
所以在查ascii码表时,需要:
1、把要查的值,转成二进制值;
2、得到高四位值,及低四位值;
3、根据高四位值查表,找到所在列;
4、根据低四位值查表,找到所在行;
5、所在行列的交叉格,就是要查找的字符。
『肆』 c语言编程将16位无符号数的高8位和低8位交换.
取出高8位,然后右移8位,再取出低8位,然后左移8位,再把它们喊衫相加就可以了,代码:
#include<stdio.h>
unsignedshort迹渗隐MyConvert(unsignedshortsval)
{
return((sval&0x00ff)<<8)+((sval&0xff00)>>8);
}
intmain()
{
unsignedshortsval=0xabcd;
printf("%d,0x%X ",sval,sval);
sval=MyConvert(sval);
printf("%d,0x%X ",sval,sval);
return姿厅0;
}
测试截图:
『伍』 在C语言中怎样获得汉字编码
可以得到汉字的每个字节的ASCII码(内码)汪前值,也可以得到它们的区唤则位码:
#include<stdio.h>
intmain()
{unsignedchars[11];inti,a,b;
printf("请输入姓名:");
gets(s);
printf("汉字 ASCII码 内码 区位码 ");
for(i=0;s[i];i+=2)
{a=s[i];和陵棚b=s[i+1];
printf("%c%c: %d%d %X%X %d",a,b,a,b,a,b,a-160);
if(b<170)printf("0%d ",b-160);
elseprintf("%d ",b-160);
}
system("pause");
return0;
}
『陆』 c语言,一个无符号整型数,怎么获取它的低8位,怎么用8位二进制替换掉它的低8位
假如
unsigned
int
a
就是那个无符号的整形数
,a&0xff就获取了a的低8位。假如你要替换的8位衡档困二进制是01101100b,直接a&0xffffff00|01101100b就将a的第八位换成了咐念你蠢山想替换的8位二进制数。
『柒』 单片机的高八位和低八位,能不能用个简单的程序例子说明下用法
最直接的例猛档橡枝旁子,就是定时器初始化,比如:
TMOD=0x01;//定时器蠢御0设为工作方式1
TH0=(65536-50000)/256;//初值高八位赋值给TH0
TL0=(65536-50000)%256;//初值低八位赋值给TL0
『捌』 什么是高8位和低8位啊!如何计算啊!
16位数据敬漏或者总线的话,高8位就是指十六位01二进孝稿薯制码的巧者前8个,低8位是后面8个:0101010110101010,高8位01010101,低8位10101010
『玖』 C语言位运算高八位低八位的问题
int bit_16;//16位,
char mbs_8,lbs_8;//储存高6位,低8位的变戚察晌量;没陆
mbs_8=bit_16>>8;//获取高8位,
lbs_8=bit_16;//获取高锋低8位;
『拾』 汇编里的低8位和高8位是什么意思
一个字节是8为,汇编中,为了表示一个整数类型,用两个字节来虚磨表示,散让即总共16位。同时在汇编中,一个整型是用二进制来表示的。例如2 的二进制为10,4为100,3是11。但是用两个字节表示3为0000 0000 0000 0011,共16为,20是0000 0000 0001 0100.其中前0000 0000为高8位,后边0001 0100为低8位。两个字节的数据能表示正65535 - 负65536之间的数,如257表示为0000 0001 0000 0001.所以0000 00001为高差掘斗8位,0000 0001为低8位