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

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

一、原码

原码就是符号位加上真值的绝对值, 即用第一位表示符号, 其余位表示值.

符号位:

0表示+

1表示-

8位二进制:

[+1]原 = 0000 0001

[-1]原 = 1000 0001

二、反码

反码的表示方法是:正数的反码是其本身;负数的反码是在其原码的基础上, 符号位不变,其余各个位取反。

[+1] = [00000001]原 = [00000001]反

[-1] = [10000001]原 = [11111110]反

三、补码

补码的表示方法是:正数的补码就是其本身;负数的补码是在其原码的基础上, 符号位不变, 其余各位取反, 最后+1. 

负数的补码等于反码末位加1。

X=-101011 , [X]原= 10101011 ,[X]反=11010100,[X]补=11010101

[+1] = [00000001]原 = [00000001]反 = [00000001]补

0的补码是唯一的,如果机器字长为8那么[0]补=00000000

四、移码

移码等于补码的符号(第一位数字)位取反。

同一数值的移码与补码符号位相反,其它各位相同。

 

原码中0有两种表示方式:[+0]原=0000000,[-0]原=1000000。

在反码表示中,0也有两种表示形式:[+0]反=0000000,[-0]反=11111111。
在补码表示中,0有唯一的编码:[+0]补=0000000,[-0]补=0000000。

[-1] = [10000001]原 = [11111110]反 = [11111111]补。

 

 

正数的原码,补码,反码相同;

负数的反码:原码的数值取反;

负数的补码:原码转换成反码,反码末位加1

负数的移码:与补码的符号位(第一位数字)相反

 

转载于:https://www.cnblogs.com/wander-clouds/p/8796481.html

你可能感兴趣的文章
程序员必备:SQL优化指南
查看>>
这周为公司撸了一个「自动分配任务系统」
查看>>
一个真实的Async/Await示例
查看>>
vue 项目快速输出微信、支付宝、百度小程序
查看>>
js实现万级数字转汉字显示
查看>>
这个七夕,送你一份程序员教科书级别的告白指南
查看>>
Quantum 初探
查看>>
Android LayoutInflater Factory 源码解析
查看>>
React Native for Android 原理分析与实践:实现原理
查看>>
0822 - 抓住现金牛,还是投资潜力股
查看>>
MVVM框架下实现左右滑动切换tab
查看>>
Vue访问加载本地Json(渲染模版数据)时遇到的坑,报undefined
查看>>
[教程] 使用 Agora SDK 实现视频对话应用 HouseParty - 附 iOS 源码
查看>>
Shiro第一篇【Shiro的基础知识、回顾URL拦截】
查看>>
普通程序员,三年成为年薪70w架构师,只因做到了这些
查看>>
谈程序员如何做好业务
查看>>
企鹅社区移动版Vue2.0升级手记
查看>>
04、React系列之 开发工具Atom配置
查看>>
Kotlin Weekly 中文周报 —— 99
查看>>
组件化架构Dagger2无缝连接开发
查看>>