八位二进制数,
第一位为正负值,
后面七位为小数点后的数字现在想把这八位二进制转成十进制double小数(带正负),
请问怎么弄?

解决方案 »

  1.   

    A2=(a.bcdefgh)2
    其中,a是符号位,1表示负(-1)0表示正(+1);
    转化为10进制如下:
    A10=a *[ b*(1/2) + c*(1/2)^2+...+h*(1/2)^7}
      

  2.   

    public class BinaryToDecimal{
       final static int binary = 11111111;//假定二进制数为8个1
       public static void main(String[] args){
      String binaryString = Integer.toString(binary);//将二进制数转换为String
      char signChar = binaryString.charAt(0);//提取首字
      String sign = "";
      if(signChar == '0')//判断首字是否为0,假定0为正
     sign = "+";
      else sign = "-";
      int temp = Integer.parseInt(binaryString.substring(1), 2);//将剩余七位转换为十进制
      System.out.println(sign + "0." + temp);//输出
       }
    }
      

  3.   

    谢谢了程序咋整啊。。
    我是按byte读入的
      

  4.   

    不过, 楼上的楼上的帖子还是按string输出的。。
      

  5.   

    String输出的你转下float不就行了
    float f = Float.parseFloat(str);