日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

ip地址与long数值互相转换

發布時間:2024/3/13 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ip地址与long数值互相转换 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

IPv4地址是一個32位的二進制數,通常被分割位4個“8位二進制數”

一、將ip地址轉成long數值

將IP地址轉化成整數的方法如下:
1、通過String的split方法按.分隔得到4個長度的數組
2、通過左移位操作(<<)給每一段的數字加權,第一段的權為2的24次方,第二段的權為2的16次方,第三段的權為2的8次方,最后一段的權為1

二、將數值轉換為ip地址

將整數形式的IP地址轉化成字符串的方法如下:

1、將整數值進行右移位操作(>>>),右移24位,右移時高位補0,得到的數字即為第一段IP
2、通過與操作符(&)將整數值的高8位設為0,再右移16位,得到的數字即為第二段IP
3、通過與操作符吧整數值的高16位設為0,再右移8位,得到的數字即為第三段IP
4、通過與操作符吧整數值的高24位設為0,得到的數字即為第四段IP

代碼:

import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Scanner;public class IpLong {public static void main(String[] args) throws IOException {BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));Scanner scanner = new Scanner(System.in);Boolean Mianmenu = true;while (Mianmenu){System.out.println("請查看您操作的選項:1.ip 2.long數值 3.退出");System.out.println("請輸入:");String s = bf.readLine();int i = Integer.parseInt(s);switch (i){case 1://通過左移位操作(<<)給每一段的數字加權,第一段的權為2的24次方,第二段的權為2的16次方,第三段的權為2的8次方,最后一段的權為1System.out.println("請輸入ip地址:");String ips = bf.readLine();String[] ip = ips.split("\\.");long ips1 = Long.parseLong(ip[0]) << 24;long ips2 = Long.parseLong(ip[1]) << 16;long ips3 = Long.parseLong(ip[2]) << 8;long ips4 = Long.parseLong(ip[3]);System.out.println(ips1);System.out.println(ips2);System.out.println(ips3);System.out.println(ips4);long ipInt = ips1 + ips2 + ips3 + ips4;System.out.println("ip為:"+ips+",轉換為整數為:"+ipInt);break;case 2://將整數值進行右移位操作(>>>),右移24位,右移時高位補0,得到的數字即為第一段IP//通過與操作符(&)將整數值的高8位設為0,再右移16位,得到的數字即為第二段IP//通過與操作符把整數值的高16位設為0,再右移8位,得到的數字即為第三段IP//通過與操作符把整數值的高24位設為0,得到的數字即為第四段IPSystem.out.println("請輸入整數值:");long ipzhi = scanner.nextLong();StringBuffer sb = new StringBuffer();sb.append(ipzhi >> 24);sb.append(".");sb.append((ipzhi & 0x00FFFFFF) >> 16);sb.append(".");sb.append((ipzhi & 0X0000FFFF) >> 8);sb.append(".");sb.append((ipzhi & 0X000000FF));System.out.println("整數為:"+ipzhi+"轉換為ip為"+sb);break;case 3:Mianmenu =false;break;default:System.out.println("請輸入正確的索引!!!");break;}}scanner.close();bf.close();} }

總結

以上是生活随笔為你收集整理的ip地址与long数值互相转换的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。