Python:将网络位转换为二进制

Posted

技术标签:

【中文标题】Python:将网络位转换为二进制【英文标题】:Python: Convert Networks bits to Binary 【发布时间】:2020-10-20 16:53:12 【问题描述】:

所以我想将网络位(CIDR)转换为二进制

我试图在谷歌上搜索,但它什么也没给我,只给我 ipcalculator 和其他东西

但我读了一些文章,告诉我如何将十进制转换为二进制

问题是我需要弄清楚如何将网络位更改为十进制

for example i use 28(/28) the netmask should be 255.255.255.240 i just want to use the 240
so that i can convert it to binary it should give me 11110000

我试图在谷歌上查找如何做到这一点,但只告诉我如何将二进制转换为十进制

谁能给我一个链接或教我怎么做

或者有另一种方法,比如我不必将网络位转换为十进制

我会不断更新我的进度

【问题讨论】:

我现在尝试使用 list、array 和 dict 方法,所以我不必将网络位转换为十进制 IPv4 掩码和 IPv4 地址一样,实际上是一个 32 位无符号整数,点分十进制表示法只是为了便于人类阅读。八位字节没有意义。您可以将掩码设置为0xffffffff 并将其向左移动(32 - length) 次,然后将其转换为二进制字符串,对于28 的掩码长度,您将得到0b11111111111111111111111111110000。此时,您可以获取字符串的任何部分,例如,最后八个字符将是掩码的最后一个八位字节。 【参考方案1】:

试试这个:

mask = "255.255.255.240"
#Last_char takes the last 3 digits of ur mask
last_char = int(mask[-3])
#Then it converts it to binary
dec_to_bin = bin(last_char)
#There is the result
print (dec_to_bin)

输出应该是:0b10

【讨论】:

如果我的回答有帮助请告诉我@Zaxmittas

以上是关于Python:将网络位转换为二进制的主要内容,如果未能解决你的问题,请参考以下文章

将整数转换为二进制,然后在 python 中进行左位移

在Python中将IP地址字符串转换为二进制

Python - 如何将 int 转换为表示 32 位十六进制数的字符串

在python中将32位二进制转换为十进制

用Python 3.1.3 写几个进制转换的程序

php编程:将26位字母进制转换为10进制数字,如何做?