计算机是如何存储数字的?

您所在的位置:网站首页 计算机储存理论 计算机是如何存储数字的?

计算机是如何存储数字的?

2024-02-07 14:06| 来源: 网络整理| 查看: 265

首先是整数:

计算机中所有的整数都是以补吗的形式存储的。整数的补吗就是它本身,负数的补码是它除了符号位的位数取反加一。

使用补码的原因:

简化计算机基本运算电路,使加减法都只需要用加法电路实现,用加法替代减法。

正数的补码等于原码;负数的补码等于反码加1,而反码等于原码符号位不变,其余各位取反

代表的意义

    目的:为了简化计算机基本运算电路,使加减法都只需要通过加法电路实现,也就是让减去一个正数或加上一个负数这样的运算可以用加上一个正数来代替。于是改变负数存储的形式,存储成一种可以直接当成正数来相加的形式,这种形式就是补码。(正数不用变,所以接下来的讨论中一般略去正数)

   补码是怎么把减法变成加法的?

用时钟理解减法变加法

这是一个身边的例子,当你校对时钟的时候,假设发现钟是6点,但实际上现在才2点,也就是它走快了4个小时,你可以有两种方法进行校正,一种是逆时针拨回4个小时到2点,另一种是顺时针拨6个小时到12点然后再拨2小时,也就是顺时针拨8个小时到2点。所以对于时钟的表盘来说,设-N表示逆时针拨N个小时,N表示顺时针拨动N个小时,那么-4 = +8,同样还会有 -1 = +11、-5 = +7,甚至也可以 -4 = +8 = +20 = +32 = -16…

 

这里边隐藏了什么规律?其实在数学中,-4、+8、+20、+32、-16可以归为符合某个条件的同一类数字 —— 对于模12同余。(这不是反码吗?)

 

所以,只要 补码 是一个负数的正同余数,那么就能实现加这个正同余补码跟加另一个负数是一样结果的效果。对一个负数来说,有无数个正同余数满足条件,为了减少不必要的运算,可以规定补码就取其中最小的正数。

 

可能因为通过原码求 补码 是一个补模运算,所以它被称为 补码 。

 

两个用补 码表示的数相加时,如果最高位(符号位)有进位,则进位被舍弃。

 

 

探究符号位在运算中时如何被改变的:

定义一个int类型的数,有四个字节。一个字节8个位。最大的负数:

int a= 0xFFFFFFFF;

FF FF FF FF这是所有位都是1,我想把他的最高位置0。

Int b=~(1



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3