当你在C语言中将一个int赋值给char时,会发生什么?它总是忽略左侧的额外位吗?
例如(4字节int):
在二进制中,
例如(4字节int):
unsigned char c = 0;
unsigned int i = 500;
c = i; // c is 244
c = i << 24 >> 24; //c is 244
i = i << 24 >> 24; //i is 244
在二进制中,
500
是 111110100
,而 244
则是 11110100
。
UINT_MAX + 1
)。 - user529758