美文网首页
数据表示——原码 反码 补码 移码

数据表示——原码 反码 补码 移码

作者: 陆遥远 | 来源:发表于2024-03-31 17:06 被阅读0次

一、原码

原码的第一位是符号位,正数为 0,负数为 1;后面七位是数值位,是二进制

比如数值 +0,用原码表示就是 00000000

比如数值 +6,用原码表示就是 00000110

比如数值 -7,用原码表示就是 10000111

原码的求解很简单,只要把十进制的数字转为二进制,改一下最前面的符号位即可。

但原码在做加减运算的时候,会有关于 0 这个数值的 BUG


二、反码

学习了原码之后,反码的求解就简单多了。

正数的反码就等于原码;负数的反码就是在原码的基础上,对非符号位取反即可

比如 +18 的原码是:00010010

那么 +18 的反码就是: 00010010

比如 - 17 的原码是: 10010001

那么 - 17 的反码就是: 11101110

同样我们对 +17 + (-17)进行加法运算。


三、补码

正数的补码就等于原码,负数的补码是在反码的基础上加上 1

比如 +18 的原码是:00010010,+18 的反码是: 00010010,+18 的补码也是 00010010

比如 -18 的原码是: 10010010,-18 的反码是: 11101101,-18 的补码是 11101110

同样我们对 +18 + (-18)进行加法运算。

用补码可以进行正常的加法运算,结果是正确的。


四、移码

移码不管是正负数,在补码的基础上,对符号位取反即可

比如 +18 的原码是:00010010,+18 的反码是: 00010010,+18 的补码是 00010010,+18 的补码是 10010010

比如 -18 的原码是: 10010010,-18 的反码是: 11101101,-18 的补码是 11101110,-18 的补码是 01101110

那么问题来了,移码有什么用呢?

据说是为了提现正数比负数大的效果。


五、总结

码制 求解方法 取值范围
原码 首位符号位,正数 0 负数 1,后面七位是二进制数值 - 127 <= N <= 127
反码 正数同原码,负数符号位不变,其余位取反 - 127 <= N <= 127
补码 正数同原码,负数在反码基础上加 1 - 128 <= N <= 127
移码 无论正负数,在补码基础上对符号位取反 - 128 <= N <= 127

相关文章

  • 原码、反码、补码和移码

    书中关于原码、反码、补码和移码的定义如下(n是机器字长):原码: 反码: 补码: 移码: 原码, 反码, 补码的基...

  • 数值型数据的表示方法

    带符号数的表示方法 原码 补码 反码 移码

  • 第一章 计算机硬件基

    一、概要 1、数据的表示:数制及其转换、原码、反码、补码、移码、浮点数、溢出、算...

  • JAVA中负数的二进制表示

    计算机对有符号数(包括浮点数)的表示有三种方法:原码、反码和补码,反码=原码按位取反 补码=反码+1。 移码为补码...

  • 计算机算术

    数值表示 符号—幅值表示法2的补码表示法:每一位(包括符号位)取反,加1原码补码反码移码 加减乘除 A+BA-B ...

  • 计算机为什么要使用原码、反码、补码

    1. 什么是原码、反码、补码 先看一个例子: +1和-1的原码、反码、补码的表示 原码、反码、补码的计算方式如下:...

  • 2020-05-05

    1.反码和补码和移码 (1)正数的原码,补码,反码是一样的,并且符号位第一位是0,例如:9的原码:00001001...

  • 笔记 | 计算机系统基础:01-眼前无码,心中有码

    零. 课程要点: 进制转换 原码,反码,补码,移码 数据的编码表示 为什么要学数据的编码表示?知道一个数在计算机中...

  • 原码 反码 补码 移码

    原码: 如果机器字长为n,那么一个数的原码就是用一个n位的二进制数,其中最高位为符号位:正数为1,负数为0。剩下的...

  • 原码,补码,反码,移码

    在计算机中参与运算的数有两大类:无符号数和有符号数。 无符号数 在寄存器中的每一位均可用来存放数值,以机器字长为1...

网友评论

      本文标题:数据表示——原码 反码 补码 移码

      本文链接:https://www.haomeiwen.com/subject/ekkbtjtx.html