I have been trying to convert these numbers to 8 character strings.
I have some trouble because the zeros on left are ignored. For example.
The Expected result: 00111111 result that i got: 111111
Here's my code:
String s = new String("xlactz3Ja8Z/qep6niE");
System.out.println("String: " + s);
byte[] b = Base64.getDecoder().decode(s);
String res = "";
for(byte a : b)
{
int num = 255 & a; //Tool for set only 8 bits for time
res = res + " " + Integer.toString(num, 2);
}
System.out.println();
System.out.println(res);
res = res.trim();
transform(res, 0);
}
private static void transform(String s, int i)
{
String aux = new String();
String newString = new String ();
char[] v = s.toCharArray();
for(int i1 = i; i1 < s.length(); ++i1)
{
if(v[i1] != ' ')
{
aux = aux + v[i1];
}
else
{
if(aux.length() == 8)
{
newString = newString + aux + " ";
aux = "";
}
else
{
for(int j= 0; j < 8 - aux.length(); ++j)
aux = "0" + aux;
newString = newString + aux + " ";
aux = "";
}
}
}
System.out.println(newString);
}
}
Expected output for the code:
11000110 01010110 10011100 10110111 00111101 11001001 01101011 11000110 01111111 10101001 11101010 01111010 10011110 00100001