当前位置: 代码迷 >> Java相关 >> 关于Integer.toBinaryString(int i)的有关问题
  详细解决方案

关于Integer.toBinaryString(int i)的有关问题

热度:2595   发布时间:2013-02-25 21:46:21.0
关于Integer.toBinaryString(int i)的问题
今天想把一个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”       }
  相关解决方案