#include<stdio.h>
int main()
{
struct value
{
int bit1:1;
int bit3:4;
int bit4:4;
}bit={1,8,15};
printf("%d%d%d",bit.bit1,bit.bit3,bit.bit4);
return 0;
}
出力は次のとおりです: -1-8-1
符号なしビットが原因であることはわかっていますが、詳しく説明してください。なぜ 8 が -8 を出力し、15 が -1 を出力するのかがわかりません。