sur*_*oon 4 c bit-fields
struct A { int a:2; int b:3; int c:3; }; int main() { struct A p = {2,6,1}; printf("\n%d\n%d\n%d\n",p.a,p.b,p.c); return 0; }
输出为:-2,-2,1
在C complier和C++编译器中输出上述代码的内容是什么?为什么?
Pav*_*ath 5
你的系统似乎使用了2的补码.一个2-bit位域控股2将10二进制是-22的补制度.同样110(6)是-2一个3-bit2的补码表示.而且1是纯1
2-bit
2
10
-2
110(6)
3-bit
1
另请参阅此处的有符号位字段
归档时间:
13 年,8 月 前
查看次数:
1028 次
最近记录: