计算机 原码 反码 补码
由于基础知识不牢进行补脑
以下举例无特殊说明,都是以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 是多少呢?
计算机 原码 反码 补码相关推荐
- 计算机原码反码补码之模的概念
模"是指一个计量系统的计数范围.如时钟等.计算机也可以看成一个计量机器, 它也有一个计量范围,即都存在一个"模". 例如:时钟的计量范围是0-11,模=12. 表示n位的 ...
- 关于计算机中 原码, 反码, 补码 详解
本篇文章讲解了计算机的原码, 反码和补码. 并且进行了深入探求了为何要使用反码和补码, 以及更进一步的论证了为何可以用反码, 补码的加法计算原码的减法. 论证部分如有不对的地方请各位牛人帮忙指正! 希 ...
- 计算机中的原码,计算机中的原码反码补码移码
计算机中的原码反码补码移码 原码 数值 X 的原码记为 [X]原,如果机器字长为 n (即采用 n 个二进制位表示数据),则最高位是符号位,0 表示正号,1 表示负号,基余的 n~1 位表示数值的绝对 ...
- 计算机组成原理——基本组成 进制转化 奇偶校验 原码 反码 补码 移码 移位 原码补码乘法除法 IEEE754 加法器ALU
笔记来源于王道考研视频 第一章 通过电信号传递信息(低电平代表0,高电平代表1) 计算机系统 计算机系统=硬件+软件 软件 系统软件 应用软件 操作系统,数据库管理系统(DBMS),标准程序库(编程时 ...
- 【计算机组成原理】原码 反码 补码 移码的转换
原码 反码 补码 移码的转换 这三种机器码都是二进制数据的表现形式,可以表现正数和负数. 原码是可以直接表现出数据的正负和大小. 正数的原码.反码和补码都是相同的. 反码用于原码和补码的转换的功能. ...
- 原码, 反码, 补码, 移码 详解
本篇文章讲解了计算机的原码, 反码和补码. 并且进行了深入探求了为何要使用反码和补码, 以及更进一步的论证了为何可以用反码, 补码的加法计算原码的减法. 论证部分如有不对的地方请各位牛人帮忙指正! 希 ...
- java进制原码_Java 一一 进制、原码 反码 补码、移位操作
进制 二进制 和 十进制 相互转换 十进制 和 十六进制 相互转换 原码,反码,补码 原码.反码.补码: 在计算机内, 有符号数有三种表示法: 原码, 反码, 补码. 所有的数据的运算都是采用 补码 ...
- 原码 反码 补码 详解
一. 机器数和真值 在学习原码, 反码和补码之前, 需要先了解机器数和真值的概念. 1.机器数 一个数在计算机中的二进制表示形式, 叫做这个数的机器数.机器数是带符号的,在计算机用一个数的最高位存放 ...
- python二进制反码例题_python中的进制转换和原码,反码,补码
python中的进制转换和原码,反码,补码 计算机文件大小单位 b = bit 位(比特) B = Byte 字节 1Byte = 8 bit #一个字节等于8位 可以简写成 1B = 8b 1KB ...
最新文章
- 华为在5.5G未来技术演进的六个方向!
- GUI实战|Python做一个文档图片提取软件
- acwing2019. 拖拉机(最短路径)
- html:(22):认识css样式和css的优势
- MacOSX系统怎么开启Root账户?Mac电脑开启root权限教程
- win7开启ftp被动模式_FTP服务器在Linux系统上的搭建
- 云计算学习笔记005---Hadoop HDFS和MapReduce 架构浅析
- 线程控制之线程和信号
- 苹果开场铃声 android,为何苹果用户喜欢用手机默认铃声?原因在这4点,真是非常现实...
- chrome 谷歌idm视频下载插件
- 香港流行乐黄金二十年——经典歌手(音乐人)全面回顾 二
- 液晶面板里面有些什么配件_TFT液晶屏的基本组成和部件是什么
- jzoj6152. 【GDOI2019Day2模拟2019.4.29】Endless (倍增维护并查集,平方串)
- 大疆2022 “拓疆者” 校园招聘
- win10网络重置后无法发现网络,Wlan选项消失,有线网络不识别
- zcum(浙江中医药)1919: kirito's 星爆气流斩
- yolov5 教学入门使用
- 数值分析(一):全选主元高斯消元法的C++实现
- 学习软件测试基础测试第十三天
- 年度盘点 | 最受欢迎的60篇好文