显而易见了:int8 的可表示范围是 [-128, 127],所以可以被赋值为 -128。而 (-128) / (-1) = 128 显然超过了该表示范围,+128 用有符号整数表示需要 9 位,表示为 0 1000 0000,最高位的 0 已经溢出,所以丢弃,导致结果是 1000 0000,即 -128。
所以这段代码的输出结果就是 -128 啦~
总结int8 表示有符号 8 位整数,它的可表示范围是 [-128, 127]
计算机内部使用补码方式表示负数
补码解决了 +0 和 -0 并存的问题,并省下 -0 的表示方法,多表示了一个最低数 -128
补码使得所有整数集都能使用同一套加法规则
如果发生溢出,多出的高位将被截取
如果你觉得文章写得不错,请帮我两个小忙:
点赞并关注我,让这篇文章被更多人看到
关注公众号「编程拯救世界」,公众号专注于编程基础与服务端研发,你将第一时间获得新文章的推送~
原创不易,多多支持~谢谢大家!