专家
公告
财富商城
电子网
旗下网站
首页
问题库
专栏
标签库
话题
专家
NEW
门户
发布
提问题
发文章
负数在计算机中怎样存储
2019-04-14 18:17
发布
生成海报
站内文章
/
模拟电子
17058
0
1650
一、什么是原码、反码、补码?
分为:正数 和负数(包括正浮点数,和负浮点数)
规定最高位位符号位正数为0,负数为1(原因下文解释)
原码
:10进制转换成2进制是原码,只不过正数的原码是本身符号位为0,负数的原码符号位为1(以下篇幅均以单字节为例:10进制1的原码是0000 0001,10进制-1的原码是1000 0001)。
反码
: 正数的反码是本身,负数的反码是负数的原码0变为1,1变为0 (-1的原码是1000 0001 它的反码就是 1111 1110,)。(注意负数求反码时候的符号位不参与变换)。
补码
: 正数的补码是本身,负数的反码就是负数的反码加一 (-1的原码是1000 0001 它的反码就是 1111 1110 它的补码就是 1111 1111)。
总结:正数的原码,反码 ,补码三值合一, 负数的原码,反码,补码不同。
二:为什么要设置反码,补码?
有人会有疑惑为什么要用反码,补码,不直接用原码呢?先搞清楚一点反码补码原码是针对二进制数而言,计算机若用原码相加减,正数加正数不会出错,然而正数和负数原码相加就会出错。
引进补码的作用是为了让计算机更方便做减法
说白了,补码反码就是为了简化减法而来的,将减号化为负数 再将负数化为补码求加法 跟正数没关系 ,不管是正整数还是正小数,原码,反码,补码都全部相同。
三:Visual studio2013 查看存储;
事实证明计算机中负数是以补码存储的,也可以推广到,
计算机中所有数都是以补码形式存储的。
四:剖析本质:
1.单字节无符号的正数可以存储的范围就是 0~256 二进制表示( 0000 0000~1111 1111)
2.单字节有负号的整数可以存储的范围是-128 ~127 。
先看正数二进制能表示范围(0 000 0001 ~ 0 111 1111)即1~127
负数二进制能能表示的范围(1 000 0001 ~ 1 111 1111)即-127~-1
所还有个0 分为+0和-0 (0000 0000 表示+0,1000 0000 表示-0 表示-128)
Ta的文章
更多
>>
DSP 28335 的中断系统总结
0 个评论
基于flex与j2ee的报表开发
0 个评论
hadoop学习笔记之-hbase完全分布模…
0 个评论
负数在计算机中怎样存储
0 个评论
图像质量评估
0 个评论
共模和差模信号及其噪音抑制
0 个评论
热门文章
×
关闭
举报内容
检举类型
检举内容
检举用户
检举原因
广告推广
恶意灌水
回答内容与提问无关
抄袭答案
其他
检举说明(必填)
提交
关闭
×
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮