从十六进制转换为二进制,在Java中保留8位

时间:2016-11-06 11:25:20

标签: java binary hex base-conversion

我需要在8x8矩阵中写入8个十六进制数字的二进制值(一行用于行)。这些数字最多为8位。我写了以下代码,从十六进制转换为二进制:

private String hexToBin (String hex){
    int i = Integer.parseInt(hex, 16);
    String bin = Integer.toBinaryString(i);
    return bin;

}

但我有一个问题,低于0x80的值不需要8位以二进制表示。我的问题是:是否有一个以8位格式转换为二进制的函数(用零填充左边的位置)?非常感谢

3 个答案:

答案 0 :(得分:2)

  

我的问题是:是否有一个以8位格式转换为二进制的函数(用零填充左边的位置)?

不,没有。你必须自己写。

这是一个简单的方法。如果您知道输入始终是单个字节,那么您可以在调用toBinaryString之前向该数字添加256。这样,字符串将保证长度为9个字符,然后您可以使用substring删除第一个字符:

String bin = Integer.toBinaryString(256 + i).substring(1);

答案 1 :(得分:0)

提示:使用字符串连接在适当的位置添加适当数量的零。

例如:

GridContainer.Children.Add(SoundController.loop);
await SoundController.LoadAndPlayAsync();

(警告:未经测试......)

答案 2 :(得分:0)

我用这种方式连接起来了。谢谢!

private String hexToBin (String hex){
        int i = Integer.parseInt(hex, 16);
        String bin = Integer.toBinaryString(i);
        while (bin.length()<8){
            bin="0"+bin;
        }
        return bin;

    }