数制转换以及IP地址的计算问题

        这几天还是有同学一直在问数制转换的问题,所以来这里简单描述一下具体的思路


一、数制转换与存储空间的运算(二进制有关)


        其实在很早的时候我们就有了对于二进制进行计算的概念,但是当时意识还是不够强烈,但是现在做题做的多了感触还是颇深的。


        首先我们来讲二进制和十进制的转换,其实有多种方法,这里我讲我最常用的一种,就是位权法。老师最开始讲的快速的方法也是这个。

        我们都知道,二进制就是满二进一,和十进制是类似的。什么是位权呢,位权就是这个里面美一位数字有了值能代表多大的数字,比如十进制,每个位上最大的数字是9,所以位权表示如下:



        那么我们想要表示十进制的6542怎么办呢,当然我们知道可以直接向里面添加数字了,但是我们要是按照位权添加是不是就也是一样了呢?由于十进制每个位上都有多个数字值可以表示,所以不便于用位权来表示,但是二进制的数字就不一样了,因为每个位置上只有0和1这两个数字,所以表示的也就是位权的内容,让我们来看一下二进制的位权:




    有了位权,我们标志数字在二进制上就容易多了,举个例子,例如表示二进制的22,我们用位权如下图所示




        把数字按位权分解,总能得到一个完整的位权相加的结果,所以在用到的位权上用1来标志,用0在未使用的位权上边标识,最后就完成了。


        那么十六进制的数字表示也就不复杂了,由于四位二进制可以标志一位十六进制(4位二进制最大数字是15,符合十六进制标准)如十六进制7D3B2H可以表示为:




        这样一看其实进制的转换其实也是很简单的,下面的应用会让这个方法更加的有效率。


二、IP地址的计算


        首先我们先要弄清楚IP地址的计算都有什么,首先IP地址有主机地址,子网掩码,网络号和IP地址,他们之间存在着千丝万缕的联系,他们之间只要知道两个是可以计算出其他两个的,这一点很是重要。


那么首先来说他们的关系是什么呢?如下图所示,这个就是他们之间的运算关系。




其实很简单对不对,当你得到了IP地址和任何一个地址都可以进行计算,举个例子:  

IP:192.123.11.5      子网掩码:255.255.254.0          

进行运算,这里交给大家一个办法:

首先把他们都变为二进制地址:

IP:11000000.01111010.00001011.00000101      子网掩码:11111111.11111111.11111110.00000000

把子网掩码1所在的位置在IP中置零,即可得到主机地址:0.0.1.5          

把子网掩码中0所在的位置在IP中置零,得到网络地址:192.123.10.0        

这个里面的运算和与的运算是等价的,于是乎我们就少了取反的步骤。



评论 19
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值