资源描述:
《ip地址二进制运算》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、IP地址十进制转换为二进制基本算法之前回答过一个这样的问题用一个随便的IP举个例子68.25.193.25128,64,32,16,8,4,2,1先记住这几个数字拿68举例子第一位128大于68,写作0,68比64大,相减得4倒数第三位是4,能减去的都写1(包括相减等0),其他的位数写0如下:128,64,32,16,8,4,2,10,1,0,0,0,1,0,0这个是68的二进制数再说25的,25比16大,之前都大于25,所以16前都是写0,25减16等于9,9继续往下比,大于8,8下面写1,再9减8,还剩1,最后一位就是1128,64,32,16,
2、8,4,2,100011001看明白了吗?简便算法教你一个简单的方法。每8位二进制,各位从左到右对应的权值分别是128,64,32,16,8,4,2,1。(即2的n-1次方,n是从右到左当前位的位数)所以随便拿一个256以内的数给你化为二进制,都可以分解为权值相加。对应的权值的位值为1,其他位为0即可。比如137,137=128+8+1,所以这几个权值对应的位应该是1,其他位为0,化为二进制即是:10001001Ip地址和子网掩码做“与”运算ip地址是标识网络上唯一台计算机的一串32位二进制数。但是为了便于记忆就给转换成了4组十进制的数,每个用点隔开
3、。子网掩码与ip地址进行运算都是通过二进制数运算的,它们是进行与运算。就是1与1=11与0=00与1=00与0=0比如ip地址192.168.1.1(这是三类ip地址,每一类都有固定取值范围),转化成二进制是11000000101010000000000100000001它的子网掩码是255.255.255.0,转换成二进制是11111111111111111111111100000000按上面做与运算得到结果110000001010100000000000至于有什么作用:首先必须的知道子网掩码一定是连续的1和连续的0连续的1代表网络地址,连续的0代
4、表的是主机地址。所以子网掩码是用来确定网络位和主机位的。子网掩码和ip地址做与运算得到的是子网地址。如果ip地址A和ip地址B与子网掩码做与运算得到的子网地址是一样的话那么他们就在一个网络内,是可以进行通信的,否则就不可以。象上面那个例子。192.168.1.1这四组数字他的子网掩码是255.255.255.0可以看出来子网掩码前三组数字化成二进制是连续的1,后面是0所以ip地址前三组数字网络位不变,最后一组主机位随便怎么变和子网掩码做与运算的结果肯定是相同的,所以肯定是可以通信的。也就是说192.168.1.1192.168.1.2一直到192.1
5、68.1.244都是同一网络内可以通信的。(只能到244,因为这四组数字的范围是0-255,而255是不能用的,那是广播地址)。上面说的是每八位一划分的结果,还有借位的情况,那就更麻烦了,用笔都得算一阵,不过有软件可以帮你划分。IP地址二进制转换为十进制算法原文地址:IP地址二进制与十进制转换作者:麒麟丨龍影由此查看→ 麒麟丨龍影的blog在网络中经常会遇到IP地址化分子网等操作,我们经常要将IP地址进行二进制与十进制相互转换。如按照原先的严密的数学算法来计算非常麻烦。但在IP转换中我们可以找到一些规律,下面我来简单说明一下经常使用的一个IP二进制转
6、换成十进制的规律。我们知道IP由32位二进制位组成,每八位一组分成了四组。如果每一组中八位全是1转换成十进制则为255。我们可以取出其中的一组来看。在一组8位的二进制数中,从右到左依次排位,最右边位我们假设十进制位数为1、第二位假设十进制位数为2、第三位假设十进制位数为4、以次类推第四位为8、第五位16、第六位32、第七位为64、第八位为128,然后在来核对二进制位与十进制位。把二进制位上为1的相应十进制位上的数相加就可以得到这组二进制数的十进制数。如:11010010.11100101.00101110.00011011为32位IP地址转换为十进制
7、可以这样来做:则11010010.11100101.00101110.00011011转换为十进制为:210.229.46.27在实际转换过程中一般都是十进制的IP转换为二进制的情况最多,同样我们可以例用这个对应关第反过来得到二进制数。如:192.168.100.5转换成二进制我们可以这样来做:首先确定我们只有128、64、32、16、8、4、2、1这几个数,然后在来确定要转换的十进制数由哪几个数相加能得到:则192.168.100.5转换成二进制为:11000000.10101000.01100100.00000101熟练应用这个规律能大大加快IP
8、二进制与十进制的转换速度。