首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

简略一题求解释

2012-08-10 
简单一题求解释struct bit {int a:3int b:2int c:3}int main() {struct bit schar *c (char *)&sco

简单一题求解释

struct bit {
  int a:3;
  int b:2;
  int c:3;  
};
int main() {
  struct bit s;
  char *c= (char *)&s;
  cout<<sizeof(bit)<<endl;
  *c=0x99;
  cout<<s.a<<endl<<s.b<<endl<<s.c<<endl;
  cin>>c;
  return 0; 
}
输出:
  4
  1
  -1 
  -4 

最后一个 为什么是 -4
c是有符号的 3 bit 表示范围不是 -3~3么?

[解决办法]
c是有符号的 3 bit 表示范围不是 -4~3 (-2^(n-1)~(2^(n-1))-1)
[解决办法]
100=-4, 101=-3 ,110=-2, 111=-1, 000=0.

热点排行