前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >原码,反码与补码

原码,反码与补码

作者头像
xuyaowen
发布2020-12-30 14:57:31
4790
发布2020-12-30 14:57:31
举报
文章被收录于专栏:XUYAOWEN的专栏

本文讨论了原码,反码与补码相关的基础知识:对于一个数, 计算机要使用一定的编码方式进行存储. 原码, 反码, 补码是机器存储一个具体数字的编码方式.

机器数:一个数在计算机中的二进制表示形式,  叫做这个数的机器数。机器数是带符号的,在计算机用一个数的最高位存放符号, 正数为0, 负数为1.

例:十进制中的数 +3 ,计算机字长为8位,转换成二进制就是00000011。如果是 -3 ,就是 10000011 。

真值:将带符号位的机器数对应的真正数值称为机器数的真值。

例:0000 0001的真值 = +000 0001 = +1,1000 0001的真值 = –000 0001 = –1

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

例:8位二进制:取值范围 [1111 1111 , 0111 1111],(-127,127);

代码语言:javascript
复制
[+1]原 = 0000 0001
[-1]原 = 1000 0001

反码:正数的反码是其本身,负数的反码是在其原码的基础上, 符号位不变,其余各个位取反;反码表示的是负数, 无法直观的看出来它的数值. 需要将其转换成原码再计算;

代码语言:javascript
复制
[+1] = [00000001]原 = [00000001]反
[-1] = [10000001]原 = [11111110]反

补码:正数的补码是其本身,负数的补码是在其原码的基础上, 符号位不变, 其余各位取反, 最后+1. (即在反码的基础上+1),通常也需要转换成原码再手动计算其数值;

代码语言:javascript
复制
[+1] = [00000001]原 = [00000001]反 = [00000001]补
[-1] = [10000001]原 = [11111110]反 = [11111111]补
[1000 0000] 表示-128

应用:

更加深入,请阅读参考博客,本博客不进行重复总结了; 

保持更新,转载请注明出处;更多内容请关注cnblogs.com/xuyaowen;

参考博客:

原码, 反码, 补码 详解 (比较好的文章讲解)

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-04-05 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
对象存储
对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档