int x = 25;
unsigned int g = x & 0x80000000;
此代码如何读取x地址中的最高有效位?对0x80000000或二进制1000 0000 0000 0000的引用完成了该任务,还是其他原因?
答案 0 :(得分:-2)
对于char
,最高有效位通常是根据Two's Complement的符号位,因此应为:
char x = 25;
unsigned int msb = x & (1 << 6);
其中(1 << 6)
表示从0开始计数的6位或从1开始计数的7位。它是倒数第二位,等效于0x40
。
由于25
为0b00011001
,所以您将不会有任何设置。您需要的值> = 64。