求子网掩码换算的简单方法

发布网友 发布时间:2022-04-24 09:50

我来回答

2个回答

懂视网 时间:2022-05-11 00:11

本文实例讲述了Python简单实现子网掩码转换的方法。分享给大家供大家参考,具体如下:

这里实现将子网掩码长度转换为具体的子网掩码地址:

def exchange_maskint(mask_int):
 bin_arr = ['0' for i in range(32)]
 for i in range(mask_int):
 bin_arr[i] = '1'
 tmpmask = [''.join(bin_arr[i * 8:i * 8 + 8]) for i in range(4)]
 tmpmask = [str(int(tmpstr, 2)) for tmpstr in tmpmask]
 return '.'.join(tmpmask)
if __name__ == '__main__':
 print exchange_maskint(24)

更多Python简单实现子网掩码转换的方法介绍相关文章请关注PHP中文网!

热心网友 时间:2022-05-10 21:19

就是分别将子网掩码的每个数由10进制转2进制,方法是除基取余法,这里的基按这个问题的话就是2,如转8进制的话基就是8。

具体方法是将这个10进制数除以2,如果碰到刚好整除的话,余数就是0(余数要么是0要么是1)得到的第一个余数就是2进制数的末位,再用商来除2,得到的余数就的末位的前一位了,依次类推,直到商为0为止。举个列子,求3的二进制数,首先用3除以2,商为1,余数为1,再用商1来除以2,商为0,余数为1,就得到3的二进制数为11了。

在你问的问题中,转成的二进制数是要用8位二进制数来表示的,不足8位要在前面补0,如3的二进制数11要表示成00000011。8位二进制数的最大数是11111111,即十进制的255,所以子网掩码最大也就是255.255.255.255了,即
11111111.11111111.11111111.11111111

137/2=68余1
68/2=34余0
34/2=17余0
17/2=8余1
8/2=4余0
4/2=2余0
2/2=1余0
1/2=0余1

所以137的8位二进制就是10001001,0的8位二进制就是00000000

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com