强制类型转换的问题
- C/C++ code
#include <stdio.h>int main(void){ short j = 385; char c = (char)j; //unsigned char c = (unsigned char)j; c = 129; printf("%d\n", c); return 0;}
c怎么会是-127呢,二进制为10 00 00 01,16进制为0x81,实在想不明白怎么是-127....
[解决办法]
signed char的范围-128~127。
unsigned char的范围0~255。
[解决办法]
越界了
unsigned char的范围是0到255
255的signed char是-127
[解决办法]