У меня есть следующий код для самостоятельного обучения:Битовые поля в C++
#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
означает, что к 4 бита, или максимальное значение 15, и результат состоит в следующем.
2
0
1
Например, filed1
может быть от 0 до 7 (включительно), field2
и k
от 0 до 15. Почему такой результат? Может быть, все должно быть равным нулю?
bitfield, not bitfiled. – kennytm