因为IP中每个数字都允许输入0-255中的整数,可以得出每一个数字都是2^8,所以一个字符型的IP可以用一个Integer(-2^31-2^31)类型来储存。用二进制来看就是每个数字占8位。把字符型的IP地址转换为数字就是把IP串中的每一个数字放到Integer 的不同位置,第一个数字放到Integer二进制表示中的最前面8位上,以此类推
/** * 字符串型IP地址转换为整形 * @param ipStr * @return 整形IP地址 */ Integer ipToInt(String ipStr) { if (!this.checkIp(ipStr)) { throw new RuntimeException("IP地址不合法"); } String[] arr = ipStr.split("\\."); int intIp =0; intIp += Integer.valueOf(arr[0]) << 24; //IP地址第一位,左移24位 intIp += Integer.valueOf(arr[1]) << 16; //IP地址第二位,左移16位 intIp += Integer.valueOf(arr[2]) << 8; //IP地址第三位,左移8位 intIp += Integer.valueOf(arr[3]);
利用位运算实现IP转换 (字符串-整形)
最新推荐文章于 2023-09-25 12:52:10 发布
本文介绍如何利用位运算将IP地址从字符串形式转换为整数。每个IP数字对应2^8,可以使用Integer类型存储。通过位移操作,将IP串中的每个数字依次放入整数的不同位上,首个数字占据最高8位。

最低0.47元/天 解锁文章
586

被折叠的 条评论
为什么被折叠?



