如题所述
在16位int平台下,int的范围是-32768~+32767,65525已经远超出int正确表达的数域了,产生了溢出问题。65525的作为正数的二进制是1111111111110101,这个二进制数恰好是十进制数-11的二进制补码。追问
您好 谢谢 这个二进制数恰好是十进制数-11的二进制补码。 这句话不太理解。
追答-11二进制原码是10000000 00001011,按求负数二进制的补码规则,符号位不变数据位取反:11111111 11110100,再+1为11111111 11110101——这就是16位int平台下的-11,若按正数看待,那就是65525了。
温馨提示:答案为网友推荐,仅供参考
第1个回答 2017-11-14
丁得孙80地镇星小遮拦穆春81地羁星操刀鬼曹正82地魔星