int ip = ;
/* // 測試**
system.out.println(integer.tobinarystring(ip[0]));
system.out.println(integer.tobinarystring(ip[1]));
system.out.println(integer.tobinarystring(ip[2]));
system.out.println(integer.tobinarystring(ip[3]));
system.out.println(" & 0xff: "); // 不夠八位的補齊八位
system.out.println(integer.tobinarystring(ip[0] & 0xff));
system.out.println(integer.tobinarystring(ip[1] & 0xff));
system.out.println(integer.tobinarystring(ip[2] & 0xff));
system.out.println(integer.tobinarystring(ip[3] & 0xff));
system.out.println("bit compute:"); // 不同部分位移8的倍數
system.out.println(integer.tobinarystring((ip[0] & 0xff) << 24 ));
system.out.println(integer.tobinarystring((ip[1] & 0xff) << 16 ));
system.out.println(integer.tobinarystring((ip[2] & 0xff) << 8 ));
system.out.println(integer.tobinarystring((ip[3] & 0xff) << 0 ));
*/// 通過位或操作把位移之後的數加起來,得到的結果就是能夠表示ip的整數
int v = ((ip[0] & 0xff) << 24 ) | ((ip[1] & 0xff) << 16 )
| ((ip[2] & 0xff) << 8 ) | ((ip[3] & 0xff) << 0 );
system.out.println(integer.tobinarystring(v));
system.out.println(v);
/* // 測試反向位移操作
system.out.println("reverse ip test ");
system.out.println(integer.tobinarystring(0xff));
system.out.println(integer.tobinarystring(v>>24));
system.out.println(integer.tobinarystring(v>>24 & 0xff));
system.out.println(integer.tobinarystring(v>>16));
system.out.println(integer.tobinarystring(v>>16 & 0xff));
system.out.println(integer.tobinarystring(v>>8));
system.out.println(integer.tobinarystring(v>>8 & 0xff));
system.out.println(integer.tobinarystring(v));
system.out.println(integer.tobinarystring(v & 0xff));
*/// 整數轉化為ip資料
system.out.println("reverse ip: ");
ip[0] = v>>24 & 0xff;
ip[1] = v>>16 & 0xff;
ip[2] = v>>8 & 0xff;
ip[3] = v & 0xff;
for(int i: ip)
整數的表示
計算機中整數用補碼表示 對於乙個整數 x 的01序列 x x x 3x 2x 1x 0 其 x 的值為 2 x sum limits 2 i x i 例如x的二進位制序列為1001011,x 2 6 2 3 2 1 2 0 53 也就是最高位是負的,其餘都是正的。c語言中位拓展有兩種方法,一種是零拓...
演算法 將正整數表示為平方數之和
timus online judge 上有這麼一道題目 1073.square country 這道題目的輸入是乙個不大於 60,000 的正整數,要求計算出該正整數最少能夠使用多少個正整數的平方和來表示。這道題目的時間限制是 1 秒 定理 369 lagrange 定理 每個正整數都是四個平方數之...
羅馬數表示整數
羅馬數字共有七個,即 i 1 v 5 x 10 l 50 c 100 d 500 m 1000 按照下面三條規則可以表示任意正整數。重複數次 乙個羅馬數字重複幾次,就表示這個數的幾倍。右加左減 在乙個較大的羅馬數字的右邊記上乙個較小的羅馬數字,表示大數字加小數字。在乙個較大的數字的左邊記上乙個較小的...