Buenas,
En cualquier caso aunque se utilice el ASCII extendido, un byte puede almacenar 256 valores, por lo que no deberia haber problema.
El caso es que Java, aunque originalmente utilizaba Ascii (ver constructores deprecados de la clase String) desde hace ya muchisimo tiempo utiliza internamente el charset Unicode para representar los caracteres.
Por lo tanto, lo que te pasa es que si utilizas String no estas convirtiendo a codigos ASCII, sino a codigos del charset por defecto en tu sistema,
UTF-8:
http://www.utf8-chartable.de/
UTF-8 utiliza 1 byte solo para los primeros caracteres y para el resto utiliza 2. Eso explica los extranos resultados.
Para conseguir lo que quieres tendras que trabajar a mas bajo nivel y utilizar char en lugar de String.
Código Java:
Ver originalpublic class TestASCII {
public static void main
(String[] args
) { System.
out.
println(AsciiToBinary
("ªØ(".
charAt(0))); System.
out.
println(AsciiToBinary
("ªØ(".
charAt(1))); System.
out.
println(AsciiToBinary
("ªØ(".
charAt(2))); }
public static String AsciiToBinary
(char character
){ StringBuilder binary = new StringBuilder();
int val = character;
for (int i = 0; i < 8; i++)
{
binary.append((val & 128) == 0 ? 0 : 1);
val <<= 1;
}
return binary.toString();
}
}
Un saludo