【发布时间】:2010-08-07 08:54:37
【问题描述】:
我有以下自学代码:
#include <iostream>
using namespace std;
struct bitfields{
unsigned field1: 3;
unsigned field2: 4;
unsigned int k: 4;
};
int main(){
bitfields field;
field.field1=8;
field.field2=1e7;
field.k=18;
cout<<field.k<<endl;
cout<<field.field1<<endl;
cout<<field.field2<<endl;
return 0;
}
我知道unsigned int k:4表示k是4位宽,或者最大值为15,结果如下。
2
0
1
例如,filed1 可以从 0 到 7(包括在内),field2 和 k 从 0 到 15。为什么会出现这样的结果?也许应该全部为零?
【问题讨论】:
标签: c++ bit-fields