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

计算机科学中使用 无符号(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。

 

相关文章:

  • 2021-07-09
  • 2022-01-23
  • 2021-11-30
  • 2021-10-27
  • 2021-11-15
  • 2021-12-04
猜你喜欢
  • 2022-12-23
  • 2021-07-06
  • 2021-12-02
  • 2022-02-01
  • 2022-12-23
  • 2021-04-20
  • 2022-01-01
相关资源
相似解决方案