进制 位域 相关的的问题;
插入代码(问题在注释里面):#include<stdio.h>
/*IDE&Compile:C-Free 5.0;
*Attar:C语言 ;
*TIME:2013年7月18日07:12:08;
*ABOUT:你知道,这是个非常有趣的代码当你输入+256的时候,打印的结果是-256;
*我也不知道这是什么情况,待处理中...
* doing...
*/
int main(void){
struct{
int n:9;
/*测试的结果是:n:8以下..==0;
n:8== 0;
n:9==-256
n:10==256
n:11==256
n:12以上 ..==256;
*/
}bin;
bin.n=256;
printf("The bin.n =%d ;\n",bin.n);
return 0;
}
还有我自己的理解:
操作系统:Win Xp sp3 32bit;
(DEC)256=(BIN)1 0000 0000
0000 0001 0000 0000 (最高位是1,所以是负数)//剩余的8位全部是0,-0,好像又不对,
0000 0001 0000 0000=1 0000 0000;
|