学习:原码-反码-补码

文章目录

前提知识

正数不需要进行原码反码补码一说,正数就是正数,我们原码反码补码是为了针对负数
(按道理来说其实根本不存在什么码,只有二进制机器码,不过是为了方便计算)

  • 原码

数值的二进制即为原码

  • 反码

将二进制位取反即可,即 0-->1, 1-->0

  • 补码

将原码取反码再加一即为补码

  • 移码

符号码+数值码 = 移码

这里的符号码和数值码在不同环境下又有不一样的叫法,暂且这个名字是最符号的

原码详解

原码是对应数值的二进制码

  • 整数原码

    • 定义
    • 理解:大于0就没什么好说了,小于0为什么是2n - x ?
      比如:x = -0010 他的n=4,所以n表示的是二进制的位数,因此直接取n为2的阶可以比原二进制0010大一个位数,本质其实就是这个,用比该数值大一位的数字去进行减一个负数即加上这个数值,其实就是加一个符号位,即10000,又因为2n - x ,这时候就能看懂了,其实是为了用x小于0这个特性,然后再减去负数即加一个正数,这样就是把2n次幂加进x这个负数中去了,实现了1作为符号位区分出一个负数。(那么整数也是同理只不过用0作为符号位有时候可以不写)
  • 小数原码

    • 定义

    理解:大于0也没什么好说的了,为什么小于0是用1-x?

    比如:-0.1101 比小数点高一位也就只有1了,而且永远是1,所以就是给负数加一个1符号位。

    举一反三:-1.1101,这时候我们这个是大于小数的,那么我们最高位应该是加在1的前面,

    即:1,1.1101,为了容易分辨,教材上都是用逗号对符号位区分,当然计算机中没有逗号,全部都是二进制,只是为了我们认为能分清。


上述解析纯纯原理,其实我们知道负数的原码在符号位上面是1来表示就行


反码

负数的反码符号位不参与反码,将数值位进行反码即可

  • 整数反码表示法:
  • 小数反码表示法:

补码

负数的符号不参与反码运算,对于两个负数的补码相加,如果溢出了,1会被丢弃掉。

  • 整数补码
    • 定义
    • 理解:n一样是表示二进制的位数,为什么要n+1呢?
      原因是后面我们是2n+1 + x,因为x是负数,那么我们在这里采用的是加法,所以其实是减去一个正数,如果只选择高一位减去正数的话我们最高位就会被借位借走变成0,我们负数就不成立了,所以我们需要n+1,这时候就肯定保证了减走一个二进制后还能留下最高位,因为我们选择的是高两位数。
  • 小数补码
    • 定义
    • 理解:其实学到这思考一下与原码定义和上面的整数补码定义就能想到了,我们无非就是用高一位或者高两位进行施法,那么在这里是补码,整数补码是用高两位,那么我们应该想到的是小数部分应该也是要用高两位进行借位留下最高位作为符号位,所以就是(因为x是负数):2 + x

二进制负数的运算

关于负数的二进制运算需要对负数取补码,然后补码之间进行运算,然而正数所有码都一样(不严格来说),所以只需要把负数取补码即可,然后就能正常的像正数一样运算了。

相关推荐
Learn Beyond Limits11 小时前
The learning process of Decision Tree Model|决策树模型学习过程
人工智能·深度学习·神经网络·学习·决策树·机器学习·ai
凯尔萨厮12 小时前
Java学习笔记三(封装)
java·笔记·学习
YoungUpUp13 小时前
【文件快速搜索神器Everything】实用工具强推——文件快速搜索神器Everything详细图文下载安装教程 办公学习必备软件
学习·everything·文件搜索·实用办公软件·everything 工具·文件快速搜索·搜索神器
RaLi和夕13 小时前
单片机学习笔记.C51存储器类型含义及用法
笔记·单片机·学习
武文斌7713 小时前
ARM工作模式、汇编学习
汇编·嵌入式硬件·学习·arm
lingggggaaaa14 小时前
小迪安全v2023学习笔记(八十讲)—— 中间件安全&WPS分析&Weblogic&Jenkins&Jetty&CVE
笔记·学习·安全·web安全·网络安全·中间件·wps
Jayyih14 小时前
嵌入式系统学习Day36(简单的网页制作)
学习·算法
zheshiyangyang15 小时前
TypeScript学习【一】
javascript·学习·typescript
T1an-116 小时前
Axum web框架【实习】
学习·rust
知识分享小能手16 小时前
React学习教程,从入门到精通, React 新创建组件语法知识点及案例代码(11)
前端·javascript·学习·react.js·架构·前端框架·react