数值补码和原码计算方法介绍
本文主要介绍数值的补码和原码计算方法的相关知识。
1 补码的计算方法
1. 正整数的补码和该数值的原码(即该数值的二进制形式)相同。
2. 负整数补码的计算方法如下:
- 取该负整数的绝对值,并将该绝对值以二进制形式(原码)表示;
- 将上一步骤的二进制按位取反(0 变 1,1 变 0);
- 对上一步骤的结果加 1。
例如,求 -10 的补码的计算方法如下:
- 取 -10 的绝对值 10,并以二进制形式(即 10 的原码)表示,为 0000000000001010(此处按一个整数占 16 位计算,下同);
- 对 1010 按位取反,得到二进制 1111111111110101;
- 对上一步骤的结果再加 1,得到 -10 的补码 1111111111110110。
补充:在存放整数的存储单元中,最左面的一位是符号位:该位为 0,表示数值为正;该位为 1,表示数值为负。
2 原码的计算方法
已知一个数的补码,求原码的操作就是对该补码再求补码。步骤如下:
- 如果补码的符号位为“0”,表示该数是一个正数,其原码就是补码;
- 如果补码的符号位为“1”,表示该数是一个负数,那么对给定的这个补码再求补码,再补全符号位“1”,所得结果就是要求的原码。
例如:已知一个补码为 11111001,求该数的原码,步骤如下:
- 因为符号位为“1”,表示该数是一个负数;
- 对除符号位以外的数值位取反,结果为 00000110;
- 对上一步骤的结果加 1,得到结果 00000111;
- 再补全符号位“1”,得到原码 10000111,此原码对应的数值为 -7。
说明:在上面计算负数补码对应的原码过程中,最后一步操作是“补全符号位“1””,这一操作实际上呼应着求负数补码过程中的“取绝对值”操作:“取绝对值”操作去掉了符号位“1”,此处就相应地把符号位“1”补全了。
数值补码和原码计算方法介绍相关推荐
- 计算机数值数据的编码,计算机数值数据编码(原码,反码,补码,移码)
机器数有无符号数和带符号数之分.无符号数表示正数,在机器数中没有符号位.对于无符号数,若约定小数点的位置在机器数的最低位以后,则是纯整数:若约定小数点的位置在机器数的最高位以前,则是纯小数.对于带符号 ...
- 二进制 补码 反码 原码
1.二进制补码的计算方法 二进制的补码计算非常简单,各种教材中也经常使用二进制来说明源码.反码与补码三者的关系,掌握一定基础的人都知道一下规则: 1.1 原码 最高位为符号位,0表示正数,1表示负数. ...
- 原码 反码 换算工具 补码_原码和补码的换算(原码反码补码转换工具)
[-3]反=[10000011]反=11111100 原码 反码 负数的补码是将其原码除符号位之. 两个说法都没有错,我们举个例子来看看就明白了:1.10001的补码是取反后在再加1,也就是11110 ...
- 进制转换 位运算(包括补码、原码、反码、~0等一些零碎东西一次说清)
我发现网上关于标题上的内容介绍的都很零碎,因此为了方便查找.也为了本人对这一部分的充分理解,就想着写一篇这样的博客(我分成了几个部分,以便查找): 一.进制转换 让我们先来看看各个进制的定义: 十进制 ...
- 原码、反码、补码及补码转原码
1. 什么是原码.反码.补码? 计算机要使用某种编码方式存储 原码, 反码, 补码是机器存储某个具体数字的编码 计算机底层存储的数据都是二进制形式的补码 对于一个正数来说,原码.反码.补码一致 对于一 ...
- 任意位宽的补码转原码,原码转补码
基础知识: 对于正数 正数:原码=反码=补码 对于负数: 原码->补码 和 补码->原码 的规律一样,都是 "取反加1" eg:以 -3 为例(前面的1,是符号位,0为 ...
- 补码和原码的转化过程
在计算机系统中,数值一律用补码来表示(存储). 主要原因: 使用补码,可以将符号位和其它位统一处理:同时,减法也可按加法来处理.另外,两个用补 码表示的数相加时,如果最高位(符号位)有进位,则进位 ...
- python十六进制和十进制相互转换以及由补码求原码
1 十六进制转十进制 1)str(a) 若a本身是以十六进制表示的,那么直接打印出来的是十进制的数值.str()可以将十六进制的数强制转换成十进制的字符串: num = 0xFFFF print(' ...
- c语言 补码转原码,C语言编程之二进制原码、反码和补码
概述 在计算机内,有符号数有3种表示法:原码.反码和补码. 在计算机中,数据是以补码的形式存储的,所以补码在c语言的教学中有比较重要的地位,而讲解补码必须涉及到原码.反码. 详细释义 所谓原码就是二进 ...
- 原码 反码 换算工具 补码_原码,反码,补码相互转换在线计算器_三贝计算网_23bei.com...
本计算软件适用于10进制.16进制.2进制数值原码.反码.补码的计算. 输入已知数据变量.选择已知变量的类型(支持原码(10进制).原码(16进制).原码(2进制).反码(2进制).反码(16进制). ...
最新文章
- matlab将二值图像与原图重叠_[转载]图像处理matlab及图像融合图像镶嵌图像拼接...
- 转 openssl 建立服务器证书
- Istio1.5 Envoy 数据面 WASM 实践
- 关于如何清除某个特定网站的缓存---基于Chrome浏览器
- 201521123023《Java程序设计》第13周学习总结
- oracle数据库常用的语法与复合函数
- THINKPHP聊天软件H5实时聊天室自动分配账户全开源商业源码
- 原型和原型链原型继承_原型还是不原型:这就是问题所在。
- 郭明錤:因设计复杂 苹果可能推迟至明年底生产AR/VR头盔
- awk取文本列_Linux:使用awk命令获取文本的某一行,某一列;sed插入指定的内容到指定文件中...
- 安卓手机安装谷歌框架
- 番薯网让我很不爽的几处设计
- 盗版WIN7的管理员权限
- 设计字体时字体性格的分类表现(二)
- ie vue报Unhandled promise rejection ReferenceError
- 传奇单机架设教程,五分钟完成单机架设
- 98sez资源_Sez You建筑与忍者建筑
- boss直聘实现自动回复以及自动获取简历功能
- 计算机软件统考,计算机统考_计算机与软件_考研论坛(kaoyan.com)
- OS 页面置换算法(OPT,FIFO,LRU)颠簸/抖动