计算机中的数的表现形式

什么是有符号整数和无符号整数?

计算机科学中使用 无符号(unsigned)数 来表示数学中的正整数,使用 有符号(signed)数 来表示数学中的整数。

通俗的讲就是无符号数只能表示正数,而有符号数既能表示正数,又能表示负数。

符号(signed) 在二进制中体现在最高位。以一个 8 位数为例。

如果是无符号整数,那么全部的位都用来表示数值大小。

0000 0000 ~ 1111 1111,能表示的范围是 0 ~ 255(2^8 - 1),一共 256 个数字。

而如果是有符号整数,那么最左边的一位(最高位)用来表示符号位,0 是正数,1 是负数。

正数:0 000 0000 ~ 0 111 1111,范围是 0 ~ 127(2^7 - 1),一共是 128 个数字。

负数:1 111 1111 ~ 1 000 0000,范围是 -1 ~ -128(-2^7),也是 128 个数字。

负数以补码的方式保存,补码规则是:除符号位不变,原码其他位取反后再加1。

原文地址:https://www.cnblogs.com/EnSnail/p/9685766.html