if((temp&0x80)==0x80) 什么意思

如题所述

判断变量temp 是不是 1XXX XXXX(二进制),即判断他的第7位是否为1
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-04-16
如果表达式为真,说明 temp 高位为 1, 则是双字节字符
第2个回答  2013-04-16
temp与那个十六进制数按位与运算

if((temp&0x80)==0x80) 什么意思
如果表达式为真,说明 temp 高位为 1, 则是双字节字符

if((temp&0x80)==0x80) 什么意思
判断变量temp 是不是 1XXX XXXX(二进制),即判断他的第7位是否为1

temp&0x80)==0x80什么意思
汉字编码区别于其他编码的标志就是汉字编码的最高位是1. 0x80在计算机内部表示为1000 0000 这段程序常用于判断当前字符是否是汉字.&是按位与, 对应都是1时才为1, 其它情况均未0. 如:1010 1011 & 1000 0000 = 1000 0000 即你问题中的 temp&0x80 ...

temp&0x80)==0x80什么意思
例如,当你看到"temp&0x80",它的意思是将变量temp的二进制值与0x80进行按位与运算,如果temp的最高位也是1,那么结果就是1000 0000,否则结果将是0。因此,"temp&0x80)==0x80"这一条件检查的就是temp是否为汉字编码的一种判断方式。

...pcf8591编程问题,发送一个字节程序中,if((temp&0x80)==0x80的...
if((temp&0x80) == 0x80)sda = 1;else sda = 0;\/\/下面一个SCL上升沿,把数据线SDA上的数据发送出去 scl = 1;\/\/因为前面始终判断的temp最高位,\/\/第(2,3,4...8)次循环,要依次把数据的第(7,6,5..1)位移到temp的最高位。\/\/满足这个要求,每次循环移动一位就可以了 temp = ...

跪求MAX7219驱动数码管的时钟代码
if((temp&0x80)==0x80) DIN=1; \/\/先发送数据的最高位 else DIN=0;for(k=5;k>0;k--); \/\/时钟频率高的单片机需曾加延时时间,此处为12MHz ,k=5 CLK=1;for(k=5;k>0;k--);temp<<=1;} i+=8;} LD=1;} \/*--- ...

谁有PCF8575中文资料啊!最好有c程序应用例程!!!
if((ch&0x80) == 0x80) \/\/ 若要发送的数据最高位为1则发送位1 { SDA = 1; \/\/ 传送位1 SCL = 1; delayNOP(); SDA = 0; SCL = 0; } else { SDA = 0; \/\/ 否则传送位0 SCL = 1; delayNOP(); SCL = 0; } ch = ch<<1; \/\/ 数据左移一位}}\/\/---\/\/ 函数名称: IICre...

用51单片机实现8位并行数据转为串行数据的C程序
sbit BIT_OUTPUT = P1^0;void BitsOutput(unsigned char temp)\/\/从最高位移出{ char count = 8; while(count--) { if((temp & 0x80) == 0x80) BIT_OUTPUT = 1; else BIT_OUTPUT = 0; temp <<= 1; }}void BitsOutput(unsigned char temp)\/\/从最低位...

谁能帮我设计个arm单片机的小程序啊
if((temp&0x80)==0x80)\/\/如果最左一位是1 d=1; else d=0; scl=0; \/\/时钟低 ji=0; \/\/-- sda=d; \/\/数据被赋值 ji=0; \/\/-- scl=1; \/\/接收完,时钟回复高 ji=0; \/\/-- temp=temp<<1; \/\/最左传输完,再左移一位 } scl=0; \/\/结束,时钟低 ji=0; \/\/-- sda=1; \/\/数据高 ji...

用keil中编写c语言程序,"(temp&0x80)>>7;"是什么意思?
temp&0x80表示只取temp的最高位,结果是0x00或0x80。(temp&0x80)>>7表示将最高位右移7位,就是说最高位转到最低位,并左补0。那么00右移7位是00,0x80右移7位是0x01

相似回答