假设整形数值最多8位数,当采用无符号数表示法时,数值范围为0~255,而采用有符号数表示法时,可将128-255映射为-128~-1,而0-127保持不变,来表示数值范围-128~127:
实际上这种方法叫做补码表示法,例如给定一个负数-100需要得到它的补码需要将255-100+1=156~1001_1100.直观看来首位只要为1即为负数,而0则为正数,但不能简单的认为首位是符号位:
例如假设要表示-5~4之间的10个数,可以用0~9之间的5~9来表示-5~-1,而0~4保持不变,即:
5~-5
因此首位大于等于5的表示负数,而小于等于4的表示正数.这也说明了对于二进制而言,千万不要简单的将首位理解为符号位.