无符号整型输出
-2的无符号整型输出为什么是65534,怎么来的,请指导下,给出详细过程 本帖最后由 dlnb526 于 2020-2-12 20:10 编辑short 表示的范围为 - 32767到 32767,而无符号的short表示的范围为0 到 65535
16位的无符号整型数(short),等于-2+65536=65534
希望对你有所帮助! 因为 -2 是有符号整形,所以就强制转换成无符号整形 首先你得知道无符号数与有符号数有什么区别。有符号数最前面一个为用来保存符号。只有其他位才会用来保存数据。首位为0表示正数,首位为1表示负数。无符号数都是整数,所以不需要符号位。所有位都用来保存数据,所以它的最大数会比有符号数的最大数大两倍。假设-2的二进制表示为1000000000001,
如果用无符号数的格式输出,就会把最前面的1当做数据,所以得到的是一个很大的正数。 楼上是正解,建议把补码、反码这些知识再巩固一下 那怎么得到65534,能解释下吗 张世来4610484 发表于 2020-2-14 12:58
那怎么得到65534,能解释下吗
你可以自己去查一下负2的二进制表示,再把最前面1号位当做数据,换算成10进制应该就是了。
页:
[1]