本文主要介绍数值的补码和原码计算方法的相关知识。

1 补码的计算方法

1. 正整数的补码和该数值的原码(即该数值的二进制形式)相同。

2. 负整数补码的计算方法如下:

  1. 取该负整数的绝对值,并将该绝对值以二进制形式(原码)表示;
  2. 将上一步骤的二进制按位取反(0 变 1,1 变 0);
  3. 对上一步骤的结果加 1。

例如,求 -10 的补码的计算方法如下:

  1. 取 -10 的绝对值 10,并以二进制形式(即 10 的原码)表示,为 0000000000001010(此处按一个整数占 16 位计算,下同);
  2. 对 1010 按位取反,得到二进制 1111111111110101;
  3. 对上一步骤的结果再加 1,得到 -10 的补码 1111111111110110。

补充:在存放整数的存储单元中,最左面的一位是符号位:该位为 0,表示数值为正;该位为 1,表示数值为负。

2 原码的计算方法

已知一个数的补码,求原码的操作就是对该补码再求补码。步骤如下:

  1. 如果补码的符号位为“0”,表示该数是一个正数,其原码就是补码;
  2. 如果补码的符号位为“1”,表示该数是一个负数,那么对给定的这个补码再求补码,再补全符号位“1”,所得结果就是要求的原码。

例如:已知一个补码为 11111001,求该数的原码,步骤如下:

  1. 因为符号位为“1”,表示该数是一个负数;
  2. 对除符号位以外的数值位取反,结果为 00000110;
  3. 对上一步骤的结果加 1,得到结果 00000111;
  4. 再补全符号位“1”,得到原码 10000111,此原码对应的数值为 -7。

说明:在上面计算负数补码对应的原码过程中,最后一步操作是“补全符号位“1””,这一操作实际上呼应着求负数补码过程中的“取绝对值”操作:“取绝对值”操作去掉了符号位“1”,此处就相应地把符号位“1”补全了。

数值补码和原码计算方法介绍相关推荐

  1. 计算机数值数据的编码,计算机数值数据编码(原码,反码,补码,移码)

    机器数有无符号数和带符号数之分.无符号数表示正数,在机器数中没有符号位.对于无符号数,若约定小数点的位置在机器数的最低位以后,则是纯整数:若约定小数点的位置在机器数的最高位以前,则是纯小数.对于带符号 ...

  2. 二进制 补码 反码 原码

    1.二进制补码的计算方法 二进制的补码计算非常简单,各种教材中也经常使用二进制来说明源码.反码与补码三者的关系,掌握一定基础的人都知道一下规则: 1.1 原码 最高位为符号位,0表示正数,1表示负数. ...

  3. 原码 反码 换算工具 补码_原码和补码的换算(原码反码补码转换工具)

    [-3]反=[10000011]反=11111100 原码 反码 负数的补码是将其原码除符号位之. 两个说法都没有错,我们举个例子来看看就明白了:1.10001的补码是取反后在再加1,也就是11110 ...

  4. 进制转换 位运算(包括补码、原码、反码、~0等一些零碎东西一次说清)

    我发现网上关于标题上的内容介绍的都很零碎,因此为了方便查找.也为了本人对这一部分的充分理解,就想着写一篇这样的博客(我分成了几个部分,以便查找): 一.进制转换 让我们先来看看各个进制的定义: 十进制 ...

  5. 原码、反码、补码及补码转原码

    1. 什么是原码.反码.补码? 计算机要使用某种编码方式存储 原码, 反码, 补码是机器存储某个具体数字的编码 计算机底层存储的数据都是二进制形式的补码 对于一个正数来说,原码.反码.补码一致 对于一 ...

  6. 任意位宽的补码转原码,原码转补码

    基础知识: 对于正数 正数:原码=反码=补码 对于负数: 原码->补码 和 补码->原码 的规律一样,都是 "取反加1" eg:以 -3 为例(前面的1,是符号位,0为 ...

  7. 补码和原码的转化过程

    在计算机系统中,数值一律用补码来表示(存储).  主要原因: 使用补码,可以将符号位和其它位统一处理:同时,减法也可按加法来处理.另外,两个用补  码表示的数相加时,如果最高位(符号位)有进位,则进位 ...

  8. python十六进制和十进制相互转换以及由补码求原码

    1  十六进制转十进制 1)str(a) 若a本身是以十六进制表示的,那么直接打印出来的是十进制的数值.str()可以将十六进制的数强制转换成十进制的字符串: num = 0xFFFF print(' ...

  9. c语言 补码转原码,C语言编程之二进制原码、反码和补码

    概述 在计算机内,有符号数有3种表示法:原码.反码和补码. 在计算机中,数据是以补码的形式存储的,所以补码在c语言的教学中有比较重要的地位,而讲解补码必须涉及到原码.反码. 详细释义 所谓原码就是二进 ...

  10. 原码 反码 换算工具 补码_原码,反码,补码相互转换在线计算器_三贝计算网_23bei.com...

    本计算软件适用于10进制.16进制.2进制数值原码.反码.补码的计算. 输入已知数据变量.选择已知变量的类型(支持原码(10进制).原码(16进制).原码(2进制).反码(2进制).反码(16进制). ...

最新文章

  1. matlab将二值图像与原图重叠_[转载]图像处理matlab及图像融合图像镶嵌图像拼接...
  2. 转 openssl 建立服务器证书
  3. Istio1.5 Envoy 数据面 WASM 实践
  4. 关于如何清除某个特定网站的缓存---基于Chrome浏览器
  5. 201521123023《Java程序设计》第13周学习总结
  6. oracle数据库常用的语法与复合函数
  7. THINKPHP聊天软件H5实时聊天室自动分配账户全开源商业源码
  8. 原型和原型链原型继承_原型还是不原型:这就是问题所在。
  9. 郭明錤:因设计复杂 苹果可能推迟至明年底生产AR/VR头盔
  10. awk取文本列_Linux:使用awk命令获取文本的某一行,某一列;sed插入指定的内容到指定文件中...
  11. 安卓手机安装谷歌框架
  12. 番薯网让我很不爽的几处设计
  13. 盗版WIN7的管理员权限
  14. 设计字体时字体性格的分类表现(二)
  15. ie vue报Unhandled promise rejection ReferenceError
  16. 传奇单机架设教程,五分钟完成单机架设
  17. 98sez资源_Sez You建筑与忍者建筑
  18. boss直聘实现自动回复以及自动获取简历功能
  19. 计算机软件统考,计算机统考_计算机与软件_考研论坛(kaoyan.com)
  20. OS 页面置换算法(OPT,FIFO,LRU)颠簸/抖动

热门文章

  1. 了解一个新技术和技术点的时候需要了解的事情
  2. Oracle SQL注入常用语句
  3. 《测试类职位面试360度》
  4. Exchange Server 2007迁移Exchange Server 2010 (15)---启用Outlook anywhere
  5. Zen Cart对空间或主机的要求
  6. 利用存储过程批量生成数据
  7. Visual Entity 使用(四)添加、删除属性
  8. 软件测试——闭着眼睛测试软件
  9. 2019东南大学研究生课程计算机网络安全
  10. Django 视图与网址