计算机补码的简单理解(补码与原码之间的转换)
补码是计算机用来表示负数的方式,在有符号运算时才有意义,所以原码应该是有符号位的。本文可以帮助你理解补码与原码间的映射与变换。
第一步:简单表示
首先:为了简单起见我们取三位二进制数:
二进制:000 001 010 011 100 101 110 111
十进制 :0 1 2 3 4 5 6 7
可以看到三位二进制数可以表示八个数字,那么分为正数和负数,便只可表示八个数字:
+0 -0 +1 -1 +2 -2 +3 -3
第二步:确定变换映射
现在想象上述三位二进制数们头尾相接,像钟表一样排列,得到:
二进制:100 101 110 111 000 001 010 011
十进制: 4 5 6 7 0 1 2 3
令0的左边表示负数,现决定映射如下:
补码 :100 101 110 111 000 001 010 011
十进制: 4 5 6 7 0 1 2 3
表示数:-0 -3 -2 -1 0 1 2 3
采用此映射的原因很好理解:
为了符合计算机加法运算:式子 -1+1=0用二进制补码表示为111(-1)+1=000(0);
而像十进制的9+1=0(即10除以10取余)一样:式子3+1=4用二进制补码表示为011(3)+1=100(-0)(即4除以4取余)
如同1、2、3…8、9、0、1、2…8、9、0…递增形成循环一样,像可以看到补码元素递增也形成循环。
第三步:得到变换规则
根据映射:
补码 :100 101 110 111 000 001 010 011
十进制: 4 5 6 7 0 1 2 3
表示数:-0 -3 -2 -1 0 1 2 3
可以发现1开头的均为负数,0开头的均为正数。故令补码第一位为符号位:1负0正
除去符号位后,观察表示数的绝对值和补码形式:
补码 :00 01 10 11 00 01 10 11
表示数:-0 -3 -2 -1 0 1 2 3
绝对值:00 11 10 01 00 01 10 11
发现正数的补码(除符号位)和其绝对值的二进制相同,而负数(除符号位)的补码是其绝对值的反码(按位取反)+1。(推导略)
变换规则:
补码->原码:
符号位为1,则为负数,取出符号位,剩余位取反减一便得到原数绝对值,再与符号位拼接得到原码。如:101符号位为1是负数,除去符号位得到01,取反减1得到11(3),拼上符号位后得到原码为111,值是-3
符号位为0,则为正数,本身就是原码,如011就是原码。
原码->补码:
符号位为1,则为负数,取出符号位,剩余位取反加一便得到补码。如:原码101(-1)符号位为1是负数,除去符号位得到01,取反+1得到11,拼上符号位后得到补码为111
符号位为0,则为正数,本身就是原码,如011就是原码。
计算机补码的简单理解(补码与原码之间的转换)相关推荐
- 计算机组成二进制除法,计算机组成原理:3.4.1 定点原码 除法器
<计算机组成原理:3.4.1 定点原码 除法器>由会员分享,可在线阅读,更多相关<计算机组成原理:3.4.1 定点原码 除法器(28页珍藏版)>请在人人文库网上搜索. 1.计算 ...
- 【仓鼠的计算机基础系列】为什么要设计原码、反码和补码
文章目录 写在前面 1.夭折的三进制 2.计算机如何表示负数 3.计算机如何计算减法 写在前面 大家好,这里是睿智的仓鼠. 在我自学Java的过程中,整理了很多学习笔记,最近在着手开源给大家.如果您发 ...
- 计算机真值范围,计算机的机器数,真值,原码, 反码和补码
机器数 一.数的符号数值化.实用的数据有正数和负数,由于计算机内部的硬件只能表示两种物理状态(用0和1表示),因此实用数据的正号"+"或负号"-",在机器里就用 ...
- bash 将二进制转换为十进制_6、计算机进制之二进制、十进制、十六进制之间的转换...
1.计算机的数制介绍 数制:计数的方法,指用一组固定的符号和统一的规则来表示数值的方法 数位:指数字符号在一个数中所处的位置 基数:指在某种进位计数制中,数位上所能使用的数字符号的个数 位权:指在某种 ...
- 计算机二进制怎么转化成十六进制数是,6、计算机进制之二进制、十进制、十六进制之间的转换...
1.计算机的数制介绍 数制:计数的方法,指用一组固定的符号和统一的规则来表示数值的方法 数位:指数字符号在一个数中所处的位置 基数:指在某种进位计数制中,数位上所能使用的数字符号的个数 位权:指在某种 ...
- 计算机一级二进制转十六进制,计算机进制之二进制、十进制、十六进制之间的转换...
释放双眼,带上耳机,听听看~! 1.计算机的数制介绍 数制:计数的方法,指用一组固定的符号和统一的规则来表示数值的方法 数位:指数字符号在一个数中所处的位置 基数:指在某种进位计数制中,数位上所能使用 ...
- 计算机二进制转化教案及ppt,二进制和十进制之间的转换.ppt
<二进制和十进制之间的转换.ppt>由会员分享,提供在线免费全文阅读可下载,此文档格式为ppt,更多相关<二进制和十进制之间的转换.ppt>文档请在天天文库搜索. 1.计算机中 ...
- 手把手教你写HT1621显示驱动,简单明了,内含原码,方便移植,
HT1621显示驱动 Author:家有仙妻谢掌柜 Date:2021/1/5 最近用到了HT1621来驱动一个断码屏,写在这里记录自己的成长历程,也分享出去供大家参考! /* 首先声明在本程序中和移 ...
- 浮点数存储方式理解,浮点数和整数之间的转换
目录 一:单精度和双精度浮点数存储格式: 二:浮点数转换成二进制表示 I:整数部分转换二进制的方法: II:小数部分转换二进制的方法: 一:单精度和双精度浮点数存储格式: 按IEEE754标准,32位 ...
最新文章
- 针对《评人工智能如何走向新阶段》一文,继续发布国内外的跟贴留言477-486条如下:
- mysql prepare原理
- VS2013中提示:没有可放置在工具箱上的组件
- 燕山大学计算机专业研究生怎么样,求助大家!重庆邮电大学计算机专业的研究生值得一读吗?...
- HTML表单基础(掌握)
- CocoaPods安装以及遇到的坑
- java nio 详_java nio详解
- dell服务器t330进入不了系统,Re: 戴尔T330服务器故障
- weblogic系列漏洞整理 -- 1. weblogic安装
- Beta冲刺-第二天
- 组合数递推的计算方法 c语言,组合数公式的递推公式
- 有效沟通要解决的三个基本方面
- 互联网时代没有囊括进来的流量,在产业互联网时代全部都被囊括进来
- 条码标签纸的种类,常见的条码标签纸有哪些?条码标签纸的用途
- 直播间实时在线人数方案
- Matlab中Web的用法
- 河南理工大学 计算机 研究生就业,河南理工大学好就业吗?附河南理工大学就业率最高的专业名单...
- 赛博朋克式炼狱:电子垃圾在印度
- c语言表示注释,c语言中注释的位置
- 欧拉角速度与角速度的关系推导——欧拉运动方程
热门文章
- 建设银行职员以电子邮件形式外泄客户信息,非法牟利3万余元
- 陌陌5年后重启海外战略:推出陌生人社交产品Olaa
- java重定向到某个url_重定向到JavaScript中的URL
- python考研参考书目_Python自学日记28——如何选择学习资料
- 用Verilog语言对FPGA编程时候的一些错误解决方案
- 计算机平面设计必学英语,平面设计必看(国外英语资料).doc
- javaWeb——图片验证
- String类型长度最多是多少?有限制吗?
- 江苏小学计算机面试题目,“幼升小”面试题目被刷屏了......苏州网友颤抖:“我不配上小学!”...
- 天池机器训练营学习笔记04