博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
原码、反码、补码
阅读量:6262 次
发布时间:2019-06-22

本文共 947 字,大约阅读时间需要 3 分钟。

原码

一个数的原码(原始的二进制码)有如下特点:    1、最高位做为符号位,0表示正,为1表示负    2、其它数值部分就是数值本身绝对值的二进制数    3、负数的原码是在其绝对值的基础上,最高位变为1

十进制数

原码

+15

0000 1111

-15

1000 1111

+0

0000 0000

-0

1000 0000

反码

1、对于正数,反码与原码相同2、对于负数,符号位不变,其它部分取反(1变0,0变1)

十进制数

反码

+15

0000 1111

-15

1111 0000

+0

0000 0000

-0

1111 1111

补码

在计算机系统中,数值一律用补码来存储。补码特点:    1、对于正数,原码、反码、补码相同    2、对于负数,其补码为它的反码加1    3、补码符号位不动,其他位求反,最后整个数加1,得到原码

十进制数

补码

+15

0000 1111

-15

1111 0001

+0

0000 0000

-0

0000 0000

补码的意义

在计算机系统中,数值一律用补码来存储,主要原因是:    1、统一了零的编码    2、将符号位和其它位统一处理    3、将减法运算转变为加法运算    4、两个用补码表示的数相加时,如果最高位(符号位)有进位,则进位被舍弃

 示例1:用8位二进制数分别表示+0和-0

十进制数

原码

+0

0000 0000

-0

1000 0000

十进制数

反码

+0

0000 0000

-0

1111 1111

不管以原码方式存储,还是以反码方式存储,0也有两种表示形式。为什么同样一个0有两种不同的表示方法呢?

但是如果以补码方式存储,补码统一了零的编码:

十进制数

补码

+0

 0000 0000

-0

10000 0000

由于只用8位描述,最高位1丢弃,变为0000 0000

示例2:计算9-6的结果:

a、以原码方式相加:

十进制数

原码

9

0000 1001

-6

1000 0110

b、以补码方式相加:

十进制数

补码

9

0000 1001

-6

1111 1010

转载于:https://www.cnblogs.com/fxksmile/p/9332210.html

你可能感兴趣的文章
如何在linux Shell脚本里面把一个数组传递到awk内部进行处理
查看>>
共模电感的原理以及使用情况
查看>>
GridLookUpEdit多列模糊查询最简单方式 z
查看>>
memcache与Redis
查看>>
Python27中Json对中文的处理
查看>>
结构,是指事物自身各种要素之间的相互关联和相互作用的方式
查看>>
andoid电阻触摸移植
查看>>
备忘录模式
查看>>
U盘安装CentOS 7卡住在 mounting configuration file system
查看>>
《Java设计模式》之装饰模式
查看>>
android开发使用SQLite之写日记
查看>>
[生活] 日常英语学习笔记-NEVER HAVE I EVER游戏
查看>>
uva103 - Stacking Boxes(DAG)
查看>>
ACdream 1127(Base Station-树状数组-2个约束条件)
查看>>
【LFM】隐语义模型
查看>>
普通SQL语句可以用Exec执行
查看>>
Python提取MD5
查看>>
開始EEPlat之旅
查看>>
BootStrap 专题
查看>>
linux 下同步异步,堵塞非堵塞的一些想法
查看>>