由于基础知识不牢进行补脑

以下举例无特殊说明,都是以8位为例。

符号位

符号位定义:在内存寄存器最高位定义为符号位,1表示负数、0表示正数。

举例:在byte中一共有8个位。

0000 0001   表示的是正数,最高位为 0 即是
1000 0001   表示的是负数,最高位为 1 即是

原码

原码定义:

0000 0001   表示 +1的原码
1000 0001   表示 -1 的原码

反码

反码的定义:
正数的反码是其本身
负数的反码,除符号位外取反。

举例:
[+1]  0000 0001 反码为 0000 0001
[-1]   1000 0001 反码为 1111 1110,需要注意的是符号位。

补码

补码的定义:
正数的补码为原码
负数的补码为原码的反码 + 1

举例:
+1 的原码为 0000 0001,
+1 的反码为 0000 0001,
+1 的补码为 0000 0001.

-1  的原码为 1000 0001,
-1  的反码为 1111 1110,
-1  的补码为 1111 1111.

以上是关于 原码、反码、补码的定义。

那么计算机为什么用 原码、反码、补码呢?原因是减法,具体详情

计算机在存储整数时,储存的都是整数的补码。
计算机在存储整数时,储存的都是整数的补码。
计算机在存储整数时,储存的都是整数的补码。

这是数学科学家为解决减法问题,在CPU中使用加法器而设计的补码,实现减法。

下面用4个位做介绍,原理都是一样的,不想用8位介绍的原因是,字面上过多的0或1给视觉造成干扰。
对于计算机中的二进制,最高位是 0,我们知道这个数是正整数,可以计算出这个数的十进制。
例如:0010,计算十进制为(最高位为符号位,不参与运算) 0*2^2 + 1*2^1 + 0*2^0 = 2

因为正数原码反码补码定义为本身,可以用上面计算方法得出十进制值,
可是对于一个负数呢?

例如:‭1110,首先最高位为1,可以判定这个数为负数,并且这个二进制在计算机中是一个负数的补码,所以不容易从表面直观看出这个数的十进制,所以要转换成原码。

负数的补码 = 原码->补码(取反码 + 1)
负数的原码 = 补码 >补码(取反码 + 1)

求补码的原码(以下例子是一个负数的补码)
反码 :
        1110 ‬
        1001
加1:
        1001
        1010
最终得到原码 1010,最高位为1表示是负数,后面的三位二进制是 010,
010 计算十进制为(最高位为符号位,不参与运算) 0*2^2 + 1*2^1 + 0*2^0 = 2,因为最高位为1,
所以1110的十进制是 -2

二进与十六进制

以下是个人的方便记忆的快速理解,不代表科学性,仅供参考。
用十六进制表示负数
在 4位中 -1 的补码为 1111,
1111 所有位计算值为 1*2^3+1*2^2+1*2^1+1*2^0 = 15 = 0XF(十六进制)
在 8位中 -1 的补码位 1111 1111,那么十六进制为 0XFF

思考

1000 0000 是多少呢?

计算机 原码 反码 补码相关推荐

  1. 计算机原码反码补码之模的概念

    模"是指一个计量系统的计数范围.如时钟等.计算机也可以看成一个计量机器, 它也有一个计量范围,即都存在一个"模". 例如:时钟的计量范围是0-11,模=12. 表示n位的 ...

  2. 关于计算机中 原码, 反码, 补码 详解

    本篇文章讲解了计算机的原码, 反码和补码. 并且进行了深入探求了为何要使用反码和补码, 以及更进一步的论证了为何可以用反码, 补码的加法计算原码的减法. 论证部分如有不对的地方请各位牛人帮忙指正! 希 ...

  3. 计算机中的原码,计算机中的原码反码补码移码

    计算机中的原码反码补码移码 原码 数值 X 的原码记为 [X]原,如果机器字长为 n (即采用 n 个二进制位表示数据),则最高位是符号位,0 表示正号,1 表示负号,基余的 n~1 位表示数值的绝对 ...

  4. 计算机组成原理——基本组成 进制转化 奇偶校验 原码 反码 补码 移码 移位 原码补码乘法除法 IEEE754 加法器ALU

    笔记来源于王道考研视频 第一章 通过电信号传递信息(低电平代表0,高电平代表1) 计算机系统 计算机系统=硬件+软件 软件 系统软件 应用软件 操作系统,数据库管理系统(DBMS),标准程序库(编程时 ...

  5. 【计算机组成原理】原码 反码 补码 移码的转换

    原码 反码 补码 移码的转换 这三种机器码都是二进制数据的表现形式,可以表现正数和负数. 原码是可以直接表现出数据的正负和大小. 正数的原码.反码和补码都是相同的. 反码用于原码和补码的转换的功能. ...

  6. 原码, 反码, 补码, 移码 详解

    本篇文章讲解了计算机的原码, 反码和补码. 并且进行了深入探求了为何要使用反码和补码, 以及更进一步的论证了为何可以用反码, 补码的加法计算原码的减法. 论证部分如有不对的地方请各位牛人帮忙指正! 希 ...

  7. java进制原码_Java 一一 进制、原码 反码 补码、移位操作

    进制 二进制 和 十进制 相互转换 十进制 和 十六进制 相互转换 原码,反码,补码 原码.反码.补码: 在计算机内, 有符号数有三种表示法: 原码, 反码, 补码. 所有的数据的运算都是采用 补码 ...

  8. 原码 反码 补码 详解

    一. 机器数和真值 在学习原码, 反码和补码之前, 需要先了解机器数和真值的概念. 1.机器数 一个数在计算机中的二进制表示形式,  叫做这个数的机器数.机器数是带符号的,在计算机用一个数的最高位存放 ...

  9. python二进制反码例题_python中的进制转换和原码,反码,补码

    python中的进制转换和原码,反码,补码 计算机文件大小单位 b = bit 位(比特) B = Byte 字节 1Byte = 8 bit #一个字节等于8位 可以简写成 1B = 8b 1KB ...

最新文章

  1. 华为在5.5G未来技术演进的六个方向!
  2. GUI实战|Python做一个文档图片提取软件
  3. acwing2019. 拖拉机(最短路径)
  4. html:(22):认识css样式和css的优势
  5. MacOSX系统怎么开启Root账户?Mac电脑开启root权限教程
  6. win7开启ftp被动模式_FTP服务器在Linux系统上的搭建
  7. 云计算学习笔记005---Hadoop HDFS和MapReduce 架构浅析
  8. 线程控制之线程和信号
  9. 苹果开场铃声 android,为何苹果用户喜欢用手机默认铃声?原因在这4点,真是非常现实...
  10. chrome 谷歌idm视频下载插件
  11. 香港流行乐黄金二十年——经典歌手(音乐人)全面回顾 二
  12. 液晶面板里面有些什么配件_TFT液晶屏的基本组成和部件是什么
  13. jzoj6152. 【GDOI2019Day2模拟2019.4.29】Endless (倍增维护并查集,平方串)
  14. 大疆2022 “拓疆者” 校园招聘
  15. win10网络重置后无法发现网络,Wlan选项消失,有线网络不识别
  16. zcum(浙江中医药)1919: kirito's 星爆气流斩
  17. yolov5 教学入门使用
  18. 数值分析(一):全选主元高斯消元法的C++实现
  19. 学习软件测试基础测试第十三天
  20. 年度盘点 | 最受欢迎的60篇好文

热门文章

  1. 某音jsvmp下参数分析笔记
  2. RK3399平台开发系列讲解(项目实践篇)1.6、广告机硬件结构设计
  3. NODE 获取JSO数据长度
  4. 梳理元数据信息表中的DBS和TBLS中的字段信息
  5. 物流仓库HEGERLS双面悬臂式货架 无障碍存取货物的双梁多级悬臂货架
  6. java截取数组_JS Array.slice 截取数组的实现方法
  7. Your branch and remoteBranchName have diverged solution
  8. 利用LSTM实现预测时间序列(股票预测)
  9. 安豆苗:轻量级Android手机管理工具
  10. php获取数组长度的方法+实例