我正在研究有符号-无符号整数转换,我得出了这些结论,有人可以告诉我这是否正确
unsigned short var = -65537u;
脚步:
- 65537u(隐式转换为无符号整数)
二进制表示:0000 0000 0000 0001 0000 0000 0000 0001
- -65537u
二进制表示:1111 1111 1111 1110 1111 1111 1111 1111
- 截短
二进制表示:1111 1111 1111 1111
- 读为无符号短:65535
这同样适用于以下情况:
unsigned short var = -65541u;
- 65541u(无符号整数)
0000 0000 0000 0001 0000 0000 0000 0101
- -65541u
1111 1111 1111 1110 1111 1111 1111 1011
- 截短
1111 1111 1111 1011
- 读为无符号短:65531
unsigned short var = -5u;
- 5u(无符号整数)
0000 0000 0000 0000 0000 0000 0000 0101
- -5u
1111 1111 1111 1111 1111 1111 1111 1011
- 截短
1111 1111 1111 1011
- 读为无符号短:65531