public class Test4{
  public static void main( String[] args ) throws Exception{
    int hexInt = 0X80;
    System.out.println( Integer.toBinaryString( hexInt ) );
  }
}
  
?????????????????

解决方案 »

  1.   

    不好意思,我说的不是太清楚
    我是从文件中把“80”作为一个byte取出来,它的值实际上-128
    这时候,如何能得到字符串10000000
      

  2.   

    import java.io.*;public class Test4{
      public static void main( String[] args ) throws Exception{
        int hexInt = -128;
        System.out.println( Integer.toBinaryString( hexInt<0?hexInt+256:hexInt ) );
      }
    }
      
     ??????????
      

  3.   

    在处理byte的二进制时,我一般都不用Integer.toBinaryString,我一般都会自己写一个helper方法,举例如下:  static String getBinaryFromByte(byte b) {
        StringBuffer sb = new StringBuffer();
        for (int i = 7; i >=0; i--) {
          sb.append(((b&(1<<i))!=0)?'1':'0');
        }
        return sb.toString();
      }
      

  4.   

    import java.io.*;public class Test4{
      public static void main( String[] args ) throws Exception{
        byte b = -127;
        int i = b<0?b+256:b;
        System.out.println( Integer.toBinaryString( i ) );
      }
    }
      
    这样更像你的要求一点
      

  5.   

    楼上的方法也不错啊。我给楼主讲讲两者的主要区别:如果你的byte头一位不是1,那么我的方法还是会算出8位,楼上的方法按楼主的思路用的是Integer类的toBinaryString方法,会从第一个不是0的位开始显示。楼主按自己的要求选合适的吧。