美文网首页python百例
118-ip地址与10进制数的转换

118-ip地址与10进制数的转换

作者: 凯茜的老爸 | 来源:发表于2018-09-20 22:38 被阅读0次

我们先写个ping命令看看结果:

bogon:~ zhangzhigang$ ping -c2 2130706433
PING 2130706433 (127.0.0.1): 56 data bytes
64 bytes from 127.0.0.1: icmp_seq=0 ttl=64 time=0.043 ms
64 bytes from 127.0.0.1: icmp_seq=1 ttl=64 time=0.080 ms

--- 2130706433 ping statistics ---
2 packets transmitted, 2 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 0.043/0.061/0.080/0.018 ms
bogon:~ zhangzhigang$

当我们ping数字2130706433时,从127.0.0.1返回结果。为什么是这样呢?
IP地址是个32位的二进制数,表示成点分10进制,只是为了方便,如果把这32位二进制数转成10进制数,计算机也是认识的。
咱们就编写一个将10进制数转成2进制的代码吧。
思路:
1、仔细分析,IP地址的四个10进制数,实际上就是256进制
127.0.0.1 <=> 127 * 2563 + 0 * 2562 + 0 * 2561 + 1 * 2560
2、10进制数除以256,余数就是IP地址右侧的数字,商继续除256即可
具代体码如下:

def int2ip(digit):
    result = []
    for i in range(4):
        digit, mod = divmod(digit, 256)
        result.insert(0, mod)

    return '.'.join(map(str, result))

if __name__ == '__main__':
    print(int2ip(2130706433))

map函数用法,参见《70-匿名函数和map

相关文章

  • 118-ip地址与10进制数的转换

    我们先写个ping命令看看结果: 当我们ping数字2130706433时,从127.0.0.1返回结果。为什么是...

  • 进制转换

    2进制 , 8进制 , 10进制 , 16进制 , 介绍 及 相互转换 及 快速转换的方法 为什么要使用进制数 数...

  • 基础知识

    二进制的转换 10进制转化成2进制 1.一般我们用到的数1.2...100,都是10进制的数,如何转换成2进制呢用...

  • Java开发中常用的工具类

    一、16进制与10进制转换

  • 内存地址转换

    内存地址转换 内存10进制2进制16进制1G107374182430位1111111111111111111111...

  • Java实现任意进制转换

    直接看代码, 以实现25进制的数转化为16进制的数为例:思路是:经过一次转换,先将25进制的数转化为10进制,再将...

  • Flutter 进制转换

    10进制转换位16进制 16进制转换位10进制

  • Hive_Sting类型IP-转-Long类型IP

    IP地址和数字如何通过sql进行转换? IP地址一般是一个32位的二进制数意思就是如果将IP地址转换成二进制表示应...

  • (3)进制转换 矩阵转置 字符处理

    通信 1.进制转换 (1)十进制数转换为其他进制数一个十进制正整数m转换成r进制数的思路是,将m不断除以r取余数,...

  • 二进制基础

    IP地址规划,子网划分需要用到二进制相关知识。 二进制与十进制的转换。 进制转换:http://jinzhi.su...

网友评论

    本文标题:118-ip地址与10进制数的转换

    本文链接:https://www.haomeiwen.com/subject/bsdonftx.html