前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >一日一技:IPv4地址和长整数的互相转换

一日一技:IPv4地址和长整数的互相转换

作者头像
青南
发布2019-01-23 17:09:37
1.5K0
发布2019-01-23 17:09:37
举报
文章被收录于专栏:未闻Code未闻Code未闻Code

IPv4的格式为xxx.xxx.xxx.xxx其中,3个点分割的4个数字xxx表示0-255中的任意数字,例如:128.199.231.44 IPv4还有一种长整数的表示方法,例如:128.199.231.44转换为长整数,为:2160584492

那么这个转换过程是如何发生的呢?实际上非常简单。

  1. 首先使用把IP地址分成4个数字: 128 199 231 44
  2. 把每个数字转换为2进制,如果转换后这个数字对应的二进制数不够8位,在左侧补0: 10000000 11000111 11100111 00101100
  3. 把这4个二进制数直接评价在一起: 10000000110001111110011100101100
  4. 把拼接以后的二进制数转换为10进制数: 2160584492

那么,如何把这个过程倒过来,给你一个长整数,如何转换为IP地址呢?例如 986913820,转换为IP地址为: 58.211.28.28

过程如下:

  1. 把长整数转换为二进制: 986913820对应: 111010110100110001110000011100
  2. 从右向左,每8位一组,切分这个二进制数: 111010(最左边这一组二进制数可以不够8位), 11010011, 00011100 00011100
  3. 把每一组二进制位转换为十进制: 58, 211, 28, 28
  4. 把十进制数拼成IP的格式: 58.211.28.28

在明天的文章中,我们将会讲到,如何把负的长整数转换为IP地址。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-01-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 未闻Code 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档