光猫和路由器的区别

时间:2025-03-26 08:15:01
int正数和负数的原码、反码、补码

做而论道_CS: 16、32 位数,都太多了。 还是用八位来讨论吧。 八位的补码,可代表十进制数:-128 ~ 127。 而八位的原码只能代表:-127 ~ -0、+0 ~ +127。 并不包括-128。 所以,用 “原码取反加一” 来求补码,无疑是缘木求鱼。 由此可知:老师所谆谆教导的取反加一,并不是公式! 只能说:这是一个投机取巧的算法而已。 有人用:(-127 补码) + (-1 补码 ), 来求 (-128 补码),这还是一个比较聪明的方法。 但是,这也就说明:取反加一,并不是通用的公式。 取反加一,只是一个简单的算法而已。 在-128 时,就暴露出来计算机老师唬人蒙人的真面目。 --------------- 注意! 关于补码,有这样一个说法: 【两个补码相加,符号位如有进位,则进位被舍去】。 这不起眼的一句话,才是【补码的来历】。 你就看十进制吧,两位数:0 ~ 99。 随便算一个:27 + 99 = (一百) 26 也可以这样:27 - 1 = 26 如果你丢弃了进位,就是减去了 100 ! 那么,+99,就是-1 了 ! 同理,+98,就是-2 了。 。。。 舍弃了进位:  正数,就能当负数使用。  加法,也就完成了减法运算! 在计算机中舍弃进位,就可以省去减法器! 这就能简化硬件! 舍弃进位,功劳,才是大大的!