二进制 补码 反码 原码
1、二进制补码的计算方法
二进制的补码计算非常简单,各种教材中也经常使用二进制来说明源码、反码与补码三者的关系,掌握一定基础的人都知道一下规则:
1.1 原码
最高位为符号位,0表示正数,1表示负数。
例如:
X = 0b11 (3),四比特表示原码 = 0011(3) ;X = - 0b11(-3) ,四比特表示原码 = 1011(11) ;
1.2 反码
最高位为符号位,0表示正数,1表示负数。
正数的反码等于本身,负数的反码除符号位外,各位取反:
例如:
X = 0b11 (3),四比特表示原码 = 0011(3),对应反码为 = 0011(3) ;X = - 0b11(-3) ,四比特表示原码 = 1011(11),对应反码为 = 1100(12) ;
1.3 补码
最高位为符号位,0表示正数,1表示负数。
正数的补码等于本身,负数的补码等于反码+1:
例如:
X = 0b11 (3),四比特表示原码 = 0011(3),对应反码为 = 0011(3) ,补码为 = 0011(3);X = - 0b11(-3) ,四比特表示原码 = 1011(11),对应反码为 = 1100(12),补码为1101(13) ;
2、十进制的补码计算方法
对于十进制数来说,通过前面的性质不难得到正十进制数补码等于其本身,对于负十进制数来说如果还按位进行运算就太麻烦了!为了讲明白,我们从补码的起因说起:
“反码加一”只是补码所具有的一个性质,不能被定义成补码。负数的补码,是能够和其相反数相加通过溢出从而使计算机内计算结果变为0的二进制码。这是补码设计的初衷,具体目标就是让1+(-1)=0,这利用原码是无法得到的:
例如前面举得例子:
例如:
X = - 0b11(-3) ,四比特表示原码 = 1011(11),对应反码为 = 1100(12),补码为1101(13) ;
如果使用python的话,可以使用&来快速获取补码:
-3&0xf
Out[1]: 135&0xf
Out[2]: 5
这里的0xf指的是0b1111,表示4位的寄存器。如果是7位寄存器,0b111111就是0x3f。
3、已知补码怎么求原码?
对于正数来说,根据前面的介绍很容易知道 原码=补码=反码,接下来主要讨论给定负数的补码怎么求负数的原码:
3.1 二进制
先说结论:补码的补码就是原码。下面开始证明:
上面两式子说明了:
也就是说补码的补码就是原码,有点负负得正的意思哦。
3.2 十进制
二进制 补码 反码 原码相关推荐
- matlab由补码反码原码求值
function B2Qw(X,choice) len=length(X); switch choicecase 1p=str2double(X(1))*(-1)*power(2,len-1);for ...
- 1.python实现二进制补码求原码
def ori2com(ori_str):"""将原码字符串 -> 补码字符串:param ori_str:原码字符串:return:补码字符串"&quo ...
- 原码、反码、补码及补码转原码
1. 什么是原码.反码.补码? 计算机要使用某种编码方式存储 原码, 反码, 补码是机器存储某个具体数字的编码 计算机底层存储的数据都是二进制形式的补码 对于一个正数来说,原码.反码.补码一致 对于一 ...
- 原码 反码 换算工具 补码_原码和补码的换算(原码反码补码转换工具)
[-3]反=[10000011]反=11111100 原码 反码 负数的补码是将其原码除符号位之. 两个说法都没有错,我们举个例子来看看就明白了:1.10001的补码是取反后在再加1,也就是11110 ...
- c语言 补码转原码,C语言编程之二进制原码、反码和补码
概述 在计算机内,有符号数有3种表示法:原码.反码和补码. 在计算机中,数据是以补码的形式存储的,所以补码在c语言的教学中有比较重要的地位,而讲解补码必须涉及到原码.反码. 详细释义 所谓原码就是二进 ...
- 进制转换 位运算(包括补码、原码、反码、~0等一些零碎东西一次说清)
我发现网上关于标题上的内容介绍的都很零碎,因此为了方便查找.也为了本人对这一部分的充分理解,就想着写一篇这样的博客(我分成了几个部分,以便查找): 一.进制转换 让我们先来看看各个进制的定义: 十进制 ...
- 原码 反码 换算工具 补码_原码/反码/补码在线计算器
原码/反码/补码计算器,在线计算给定整数的原码/反码/补码. 原码, 反码和补码的概念 对于一个数, 计算机要使用一定的编码方式进行存储. 原码, 反码, 补码是机器存储一个具体数字的编码方式. 原码 ...
- 原码 反码 换算工具 补码_原码,反码,补码相互转换在线计算器_三贝计算网_23bei.com...
本计算软件适用于10进制.16进制.2进制数值原码.反码.补码的计算. 输入已知数据变量.选择已知变量的类型(支持原码(10进制).原码(16进制).原码(2进制).反码(2进制).反码(16进制). ...
- 任意位宽的补码转原码,原码转补码
基础知识: 对于正数 正数:原码=反码=补码 对于负数: 原码->补码 和 补码->原码 的规律一样,都是 "取反加1" eg:以 -3 为例(前面的1,是符号位,0为 ...
最新文章
- 关于CSS样式清除浮动的总结
- 脉冲电子围栏系统介绍_网络型脉冲电子围栏系统介绍
- concat合并的数组会有顺序么_JS数组 Array
- 采用光线跟踪绘制场景 c++_虚拟演播室的跟踪系统以及色键器应要选择什么型号...
- matlab采样序列幅频特性,数字信号处理课设计指导书20130530.doc
- OpenShift 4 - 在控制台中安装使用 Web Terminal
- ListT to DataTable
- C#读取数据库返回泛型集合(DataSetToList)
- 在具有内置文本扩展功能的苹果Mac上如何更快的键入内容?
- Python的开源人脸识别库:离线识别率高达99.38%
- 外星人台式电脑_2020年双11:高端电竞游戏笔记本电脑本推荐:联想、惠普、雷神、ROG、外星人等品牌游戏本挑选指南...
- asp.net高校宿舍后勤管理系统案例
- Win10下连接树莓派ZeroW(附win10虚拟网卡驱动下载)
- L08-Linux解决Device eth0 does not seem to be present,delaying initialization问题
- 电脑技巧:Win10操作系统设置定时开机图解教程
- 图嵌入综述整理(上)
- 关于Navicat到期的办法(亲测有效)
- 北京,探索「宜居」的技术路径
- ACRCloud音乐识别python3版SDK,acrcloud_extr_tool.so导入报错
- rhce考试试题以及答案_RHCE考试题
热门文章
- 让1元钱变成两百万 三种赚100万的策略
- 符号对象 符号表达式
- L2TP与PPTP区别
- Android studio屡次停止运行
- POI推荐文献阅读笔记3:Predicting Human Mobility via Graph Convolutional Dual-attentive Networks
- 【单相桥式全控整流电路求解纲要】单相桥式全控整流电路,U2=100V,负载中R=2Ω,L值极大,反电势E=60V,当a=30度时,分析电路
- java 四级联动_四级联动
- Minio工具类 MinioUtils
- 人工智能时代 智能助理必须一切
- html中outline属性,css 轮廓(outline)属性是如何使用的