Dav*_*gan 14 java arrays binary boolean
我正在尝试将整数转换为7位布尔二进制数组.到目前为止,代码不起作用:如果我输入说整数8要转换,而不是0001000我得到1000000,或者说15我应该得到0001111但我得到1111000.字符数组与二进制数组的长度不同这些立场是错误的.
public static void main(String[] args){
String maxAmpStr = Integer.toBinaryString(8);
char[] arr = maxAmpStr.toCharArray();
boolean[] binaryarray = new boolean[7];
for (int i=0; i<maxAmpStr.length(); i++){
if (arr[i] == '1'){
binaryarray[i] = true;
}
else if (arr[i] == '0'){
binaryarray[i] = false;
}
}
System.out.println(maxAmpStr);
System.out.println(binaryarray[0]);
System.out.println(binaryarray[1]);
System.out.println(binaryarray[2]);
System.out.println(binaryarray[3]);
System.out.println(binaryarray[4]);
System.out.println(binaryarray[5]);
System.out.println(binaryarray[6]);
}
Run Code Online (Sandbox Code Playgroud)
任何帮助表示赞赏.
pto*_*mli 32
实际上没有必要为此处理字符串,只需对您感兴趣的7位进行逐位比较.
public static void main(String[] args) {
int input = 15;
boolean[] bits = new boolean[7];
for (int i = 6; i >= 0; i--) {
bits[i] = (input & (1 << i)) != 0;
}
System.out.println(input + " = " + Arrays.toString(bits));
}
Run Code Online (Sandbox Code Playgroud)
小智 12
我会用这个:
private static boolean[] toBinary(int number, int base) {
final boolean[] ret = new boolean[base];
for (int i = 0; i < base; i++) {
ret[base - 1 - i] = (1 << i & number) != 0;
}
return ret;
}
Run Code Online (Sandbox Code Playgroud)
基数为7的数字15将产生{false,false,false,true,true,true,true} = 0001111b
数字8,基数7 {假,假,假,真,假,假,假} = 0001000b