Analysis about this Error:
char[] string2 = {(char)(0&1+48),(char)48,'0','0','0','0','0','0','0','0','0','0','0','0','0','0'};//Test
char[] string2 = {(char)(((int)0&1)+48),(char)48,'0','0','0','0','0','0','0','0','0','0','0','0','0','0'};//Test
System.out.println(string2);//Test
System.out.println(String.valueOf(string2));//Test
When I write "(char)(((int)0&1)+48)" the IDE told me cast to int is redundant
The Right Code:
char[] string = new char[16];
for(int i = 15; i >= 0; i--,input>>=1){
string[i] = (char)((int)(input&1)+48);//ascii '0'=48
}
return String.valueOf(string);
Second Way:
StringBuilder sb = new StringBuilder("");
for(int i = 15; i >= 0; i--,input>>=1){
sb.insert(0,String.valueOf(input&1));
}
return sb.toString();