2

16 進数を 2 進数に変換するためにこのコードを使用しましたが、8 ビットでしか機能しません。16 ビットに拡張するにはどうすればよいですか?たとえば、FFFF を 1111111111111111 に変換したい ....ゼロ 0 を埋める必要もあります...

 void HexToBinary1(String Hex) {

    int i = Integer.parseInt(Hex, 16);//16 bits
    String Bin = Integer.toBinaryString(i);//Converts int to binary

    String Bin2="";
    if(Bin.length()==8){Bin2=Bin;}
    if(Bin.length()==7){Bin2="0"+Bin;}
    if(Bin.length()==6){Bin2="00"+Bin;}
    if(Bin.length()==5){Bin2="000"+Bin;}
    if(Bin.length()==4){Bin2="0000"+Bin;}
    if(Bin.length()==3){Bin2="00000"+Bin;}
    if(Bin.length()==2){Bin2="000000"+Bin;}
    if(Bin.length()==1){Bin2="0000000"+Bin;}

    text1.setText(Bin2);//Shows binary
}
4

3 に答える 3

0

これを試して

public static String getBits(double value)
{
    //get bit-string of double
    String printString = (Long.toBinaryString(Double.doubleToRawLongBits(value)));

    //add leading zeros if bitstring is shorter than 64 bits
    while (printString.length() < 64)
        printString = "0" + printString;

    //format string by adding byte padding
    StringBuilder bitwise = new StringBuilder();
    for(int i = 0; i<8; i++)
        bitwise.append(printString.substring(i*8, (i+1)*8)+" ");

    return bitwise.toString();
}

int にさらに適応し、HEX 文字列を解析する機能を追加してください。

于 2013-05-24T09:31:47.387 に答える