(Javaで) 10進ドット記法と10進の変換 | しらべもの

10進ドット記法と10進の変換 | しらべもの
疑問もとけたし手直ししてjavaで書いた

class IPCalc {

public static void main(String args[]) {
long decaddr=Long.parseLong(args[0]);
long[] oct=new long[4];

oct[3]=((((decaddr)%16777216)%65536)%256)/1;
oct[2]=(((decaddr-oct[3])%16777216)%65536)/256;
oct[1]=((decaddr-oct[2]*256-oct[3])%16777216)/65536;
oct[0]=(decaddr-oct[1]*65536-oct[2]*256-oct[3])/16777216;

System.out.printf("%d.%d.%d.%d",oct[0],oct[1],oct[2],oct[3]);

}
}


IPアドレスが符号無し32bit整数で表現できるのに対して
java のintだと 符号付き32bit整数 なので最大値 2147483647(127.255.255.255)より大きい
数を扱えない。3232235777(192.168.1.1) は当然アウト。



JUGEMテーマ:コンピュータ



コメント

このブログの人気の投稿

4.3.0 Temporary Lookup Failureでドツボってた話

tomcat起動時の環境変数でJRE_HOMEを指定するときに