我有以下代码用于自学:
#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(包括0和7),field2
和 k
的取值范围是从0到15。为什么会出现这样的结果?也许应该都是零吗?
x+1<x
,不知道根据规则,这可以替换为“false”。 - Nordic Mainframe