欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

原始码、反转码与补偿码的基本概念及其运算方法详解

最编程 2024-02-09 16:05:47
...

愿所有美好如期而遇


我们的数据在计算机中都是以二进制形式存储的,而数据都有不同类型,但总归都会转换成数值。

原码:将数值转换成二进制。

  • 正数首位为0,表示正数
  • 负数首位为1,表示负数

网络异常,图片无法展示
|

反码:

  • 正数:同原码
  • 负数:在原码的基础上,符号位不变,其他位按位取反

网络异常,图片无法展示
|

补码:

  • 正数:同原码
  • 负数:在反码基础上,加1

网络异常,图片无法展示
|

而且计算机只有加法器,没有减法器,那么如何进行减法呢?也就是一个整数加上一个负数,同时,数值在计算机存储时按照补码存储,不按原码和反码存储,同时,计算时也是按照补码进行计算,因为这样可以将符号位和存储大小的位进行统一处理,而原码就不可以,我们来验证一下:

网络异常,图片无法展示
|

我们来探讨一下char的大小范围以及其原因:

网络异常,图片无法展示
|

那么如果一个超过范围的数赋值给char类型的变量会怎么样?我们画个图来理解

网络异常,图片无法展示
|

如果说129赋值给一个char类型的变量,那么可以这样理解,127+2,也就是在圈里顺时针走两位,也就是-127。