今天想把一个IP中的每个数都转化成二进制表示:
结果 Integer.toBinaryString(0) //0:举个例子 (或者其他比较小的数) 输出之后位数都不足8位,这个就是输出“0”,所以就想了个办法:
String toBinary = Integer.toBinaryString(m) //假设m是我ip中的一段转化为int的数值
if(toBinary.length()<8){
for(int i=0;i<8-toBinary.length();i++)
toBinary = "0"+toBinary; //在不足的位数前都加“0”
}
结果应该是 00000000 (或者其他八位)吧,但是实际结果是总是只有5位 ,求高手解答这是为什么???
------解决方案--------------------------------------------------------
- Java code
String toBinary = Integer.toBinaryString(0); // 假设m是我ip中的一段转化为int的数值 int length = toBinary.length(); if(toBinary.length()<8){ for(int i=0;i<8-length;i++) toBinary = "0"+toBinary; // 在不足的位数前都加“0” System.out.println(toBinary); }
------解决方案--------------------------------------------------------
toBinary.length()会增加的 你在程序中打印他的值和i的值就明白了。
- Java code
String toBinary = Integer.toBinaryString(m);// 假设m是我ip中的一段转化为int的数值 while(toBinary.length() < 8){ toBinary = "0" + toBinary; // 在不足的位数前都加“0” }