我需要在8x8矩阵中写入8个十六进制数字的二进制值(一行用于行)。这些数字最多为8位。我写了以下代码,从十六进制转换为二进制:
private String hexToBin (String hex){
int i = Integer.parseInt(hex, 16);
String bin = Integer.toBinaryString(i);
return bin;
}
但我有一个问题,低于0x80的值不需要8位以二进制表示。我的问题是:是否有一个以8位格式转换为二进制的函数(用零填充左边的位置)?非常感谢
答案 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;
}