#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。