因为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.value
利用位运算实现IP转换 (字符串-整形)
最新推荐文章于 2023-08-29 19:56:17 发布