我正在尝试将单个整数从其ASCII值转换为0和1。相关代码如下所示:
int num1 = bin.charAt(0);
int num2 = bin.charAt(1);
int num3 = bin.charAt(2);
int num4 = bin.charAt(3);
if (num1 == 49)
{
num1 = 1;
}
else
{
num1 = 0;
}
if (num2 == 49)
{num2 = 1;}
else
{
num2 = 0;
}
有没有办法组合if / else语句,以便我没有30行相同原则的代码?
我试过了
if (num1 == 49 || num2 ==49
)
但我不知道如何只分配等于49到0的值。
答案 0 :(得分:1)
您可以将bin
数组转换为num
的另一个int
数组。
int[] num = new int[bin.length];
for (int i = 0; i < bin.length; i++) {
char c = bin[i];
num[i] = Character.digit(c, 10);
}
这会将任何char
数字映射到int
数字。如果您只想将char
“1”转换为int
1,将任何其他char
转换为int
0,则可以将其实现为
num[i] = (c == 49) ? 1 : 0;
答案 1 :(得分:0)
使用一些已经存在的函数会容易得多:
String string = Integer.decode(bin).toBinaryString();