原码 反码 补码 移码

1、正数的原码、补码、反码均为其本身;

2、负数(二进制)的原码、补码、反码公式:

反码 = 原码(除符号位外)每位取反

补码 = 反码 + 1

反码 = 补码 - 1

移码 = 补码符号位取反

目的:

反码:解决负数加法运算问题,将减法运算转换为加法运算,从而简化运算规则;

补码:解决负数加法运算正负零问题,弥补了反码的不足。

反码与补码都是为了解决负数运算问题,跟正数没关系,因此,不管是正整数还是正小数,原码,反码,补码都全部相同。

原码、反码、补码都是有符号定点数的表示方法,移码常用来比较大小,一般会把浮点数的阶码用移码表示,移码可用于简化浮点数的乘除法运算。

假设数据的位宽是8位的话,原码就是最高位为符号位,其他7位是数据位,所以表示范围是(-127~-0,0~127)

反码的表示范围也是(-127~-0,0~127)

补码中规定用-0表示-128这个数,所以补码的表示范围为:(-128~0~127)

注:-128是个特殊的数,(-128)没有相对应的原码和反码, (-128) = (10000000)

发现一篇比较深入,讲解很好的博文:http://www.cnblogs.com/zhangziqiu/archive/2011/03/30/ComputerCode.html

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏HansBug's Lab

1641: [Usaco2007 Nov]Cow Hurdles 奶牛跨栏

1641: [Usaco2007 Nov]Cow Hurdles 奶牛跨栏 Time Limit: 5 Sec  Memory Limit: 64 MB Sub...

2726
来自专栏码匠的流水账

聊聊rocketmq的NettyEncoder及NettyDecoder

本文主要研究一下rocketmq的NettyEncoder及NettyDecoder

1441
来自专栏ml

HDUOJ------Lovekey

Lovekey Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (J...

2819
来自专栏数据结构与算法

POJ 1985 Cow Marathon(树的直径)

Description After hearing about the epidemic of obesity in the USA, Farmer John...

3436
来自专栏鸿的学习笔记

写给开发者的机器学习指南(十二)

此代码加载DJI数据,并将其添加到已经包含我们自己的股票市场指数的图形上。但是,当我们执行这段代码时,结果如下。

1082
来自专栏石奈子的Java之路

原 JAVA位运算总结

1685
来自专栏Albert陈凯

2018-04-17 Java的Collection集合类3分钟搞掂Set集合前言

3分钟搞掂Set集合 前言 声明,本文用的是jdk1.8 现在这篇主要讲Set集合的三个子类: HashSet集合 A:底层数据结构是哈希表(是一个元素为链...

2977
来自专栏web前端教室

javascript 红皮高程(21)-- 乘性操作符

注意啊,是乘性操作符,不是乘法操作符! ECMAScript定义了3个乘性操作符:乘法,除法,求模。它们的操作数在非数值的情况下,会执行自动的类型转换。要注意,...

2019
来自专栏偏前端工程师的驿站

基础野:细说原码、反码和补码

Brief                                说来惭愧虽然刚接触计算机时已经学过原码、反码和补码的内容,但最近重温时却发现“这是什么...

3458
来自专栏Jed的技术阶梯

图解 Java 位运算

需要说明的是,在计算机中,数字是以补码的形式存在的,计算也是用补码来进行计算,计算后的结果也是补码

2962

扫码关注云+社区