ip地址与整数转换

问题:

例如,ip地址为10.0.3.193,把每段拆分成一个二进制形式组合起来为00001010 00000000 00000011 11000001,然后把这个二进制数转变成十进制整数就是167773121。

原文描述:

  • 给你一个IP4的地址,请转成十进制整数 (2021-03 腾讯-PCG-前端)
  • 手撕算法: ip地址转整数 (2021-03 腾讯-TEG-后端)
  • ip字符串转整型(2021-02 快手-效率工程-后端)

思路:使用位运算实现,哪一位有1就对应位置的n次放,一个ip地址段有8位,32位刚好。故,10左移24位,0左移动16位,3左移动8位,193移动0位,最后求和,通过按位或实现。

代码:

def ipToInt(ip):
    ipList = ip.split('.')
    res = 0
    for i,n in zip(ipList, [24, 16, 8, 0]):
        res |= int(i)<<n
    return res

 

整数转化为ip:将每一个ip地址段(右移)同255做与运算,即可获取到整数值

 

posted @   今夜无风  阅读(617)  评论(0编辑  收藏  举报
编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
点击右上角即可分享
微信分享提示