二进制与地址计算

        这几天看操作系统概论,里面涉及到了很多的二进制的地址计算问题,也有很多的算法,结合我们专业的学习简单谈一下二进制与地址计算的那点破事。


一、二进制


        什么是二进制呢?十进制我们肯定都是听说过,就是我们经常使用的表示数字的方式,满10进以1,由此可以联想到二进制就是满2进1,十进制由0~9来表示,所以二进制也就是由0~1来表示。实例:101010表示二进制的数字42,具体是怎么表示出来的还要看进制的转化。

        (1).进制的转化

        进制的转化就是从一种进制的数字转化为另一种进制的数字,我们常用的就是权位转化:

        二进制数据也是采用位置计数法,其位权是以2为底的幂。例如二进制数据110.11,逢2进1,其权的大小顺序为2²、2¹、2º、  、  。对于有n位整数,m位小数的二进制数据用加权系数展开式表示,可写为:


        但是这种方法比较繁琐,下面介绍比较简便的算法:

       1.二进制和4进制的转化:

             二进制和四进制的转化是最好转化的,由于4进制是由0~3来表示的,所以用二进制中的表示0~3的数字个数来表示4进制的转化即可,1011101011 转化为4进制就是23223.转化如图;


同理二进制和8进制的转化,和16进制的转化也是如此(101101011001):

8进制16进制

如果不是正好可以转化怎么办呢,可以利用二进制的位权来处理,也就相当于第一种方法:

只是我们转化位二进制的时候可以先从最大的位开始转化。


二、地址计算


        计算机中的各种原件还有存储器都是用二进制来存储数据的,那么究竟在哪里存储什么数据这是一个经常性的话题,要存储数据就要找到空闲的空间,要找到地址才可以进行存储过程,所以寻址成为了存储过程中必不可少的一环。

        我们先来说明一下bit和byte的关系,bit是比特,是计算机存储数据的最小单位,用1位二进制来表示,byte是字节,用来存储字符的最小单位,1byte=8bit是他们的换算关系,这一点一定要记清楚下面的例子中的存储过程都是以bit为单位来举例的。

        地址分为逻辑地址和绝对地址,逻辑地址就是我们所假定的地址,而绝对地址就是这个数据真实存在的地址,又叫做物理地址。

         我们都知道,一个程序在装入主存储器之前是不知道内存空间究竟是什么样的,那么他需要怎么加载呢?首先,模拟出来一个虚拟的存储空间(程序池)装入程序,然后再向主存储器申请空间来装入,这时的虚拟空间首地址默认的就是0,然后再装入主存储后的地址就变成了实际在主存中的地址:


实际在主存中的地址就是绝对地址,而在程序池中的地址就是逻辑地址,这是第一种情况下的解释。由于主存的页式管理,又把主存分成了若干的页,每个页由页号和页的存储空间组成,每个页内的存储地址都是从0开始的,由此可见页内的地址也可以成为是逻辑地址,实际的主存地址就是绝对地址了。

        那么问题来了,怎么把逻辑地址转换为绝对地址呢?

看上图,逻辑地址是由两部分组成,一个是页地址,一个是页内地址,首先页地址也就是页号,用来表示当前所处的页是哪个页,而页内地址就是数据在页内中的位置。绝对地址=页地址x页大小+页内地址 这是很显而易见的,就和书是一样的,这篇文章在第几章(每章页数相等)的第几页,那么文章在书的页数=章数X章容量+章内页码。

         我们人类是这样来理解,但是计算可不是这样去运算的,由于二进制的特性,绝对地址的运算可以直接由二进制来表示,如上图,页地址为010,页内地址为0101,那么他的绝对地址就是0100101,由于二进制的特性,把页号放在高地址的位置就相当于把他和页大小进行了相乘也就是010x1000在加上了0101形成的这样的地址。


三、总结


        进制和计算机的命运可算是彼此相关的,没有了二进制的算法,计算机也不会发展的这么快速,没有了计算机,二进制也不会得到这么多人的认同,所以学好计算机一定要弄懂二进制的存在。

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 29
    评论
评论 29
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值