为什么图一和图二两个程序得到的结果不同?unsigned short 与unsigned 有什么不

为什么图一和图二两个程序得到的结果不同?unsigned short 与unsigned 有什么不同?
2026年09月16日 23:59
有2个网友回答
网友(1):

0x1111111111111111(16位)
对于无符号和有符号来说,转换为十进制是不同的。
有符号:最高位是用来表示正负的,所以有符号只有15位表示数字。

a和b在内存中的值是相同的。
然而一个作为有符号,一个作为无符号,转换为10进制数的时候当然就会不同。

网友(2):

unsigned若省略后一个关键字,大多数编译器都会认为是unsigned int。所以你应该懂了