int的最大最小值补码原码转换

原码

正数的二进制表示即为原码(正数的原码、反码、补码均一致)

补码

负数的补码为符号位不变,其余为取反,然后加1

补码的设计目的

(原因:带符号的数加减失效)

1、使符号位能够参与加减运算

2、将减法转换为加法运算,简化计算机电路设计

问题

按照补码定义:0000 0000 (0)与 1000 0000(-0)均可以表示0;(以8bit数为例)

且1000 0000不能转化为为任意负数(8bit表示)的原码,故将其作为8bit符号数的最小值的编码 即-127(1000 0001)-1 = -128的补码

故8bit的有符号数范围为-128 (1000 0000)~ 127(0111 1111)

注意 -127(1000 0001)

原文地址:https://www.cnblogs.com/penghuster/p/6403738.html