Alguém conhece uma forma de imprimir na tela o valor binário de uma String?
Sei que temos o Integer.toBinaryString(); para imprimir o valor binário de um int, mas desconheço para imprimir uma String.
Vocë pode imprimir o valor binário de cada caracter de uma string. Como cada caracter tem 16 bits, vocë pode usar Integer.toBinaryString para imprimir cada char.
thingol, deixa eu ver se eu entendi:
Eu passo como parametro Integer.toBinaryString(‘f’), por exemplo, substituo o inteiro por char apenas???
Tipo:
public class TesteBinario
{
public static void main (String args[])
{
String f = Integer.toBinaryString('f');
String a = Integer.toBinaryString('a');
String b = Integer.toBinaryString('b');
String i = Integer.toBinaryString('i');
String o = Integer.toBinaryString('o');
System.out.println("Fabio em Binário é: " + f + a + b + i + o);
}
}
Integer.toBinaryString retorna uma string com um ou mais dígitos, portanto seria interessante completar com zeros à esquerda, para completar 16 posições, antes de sair concatenando. Mas de resto está OK.
Completar com zeros a esquerda aonde? No System.out.println?
Vou lhe dar um exemplo. Integer.toBinaryString (‘f’) deve retornar “1100110”, mas como cada char tem 16 bits, você gostaria de ver “0000000001100110” para o caracter ‘f’.
Sim. agora entendi… MAs na realidade acho que a forma mais adequada de vizualizar seria com apenas 7 caracteres mesmo.
Valeu thingol… Abraço
Você não entendeu direito. Nem todos os caracteres podem ser representados só com 7 bits. Se seu nome fosse “Fábio” (com acento) você ia ver a diferença. É que “á” é representado como ( 0000000011100001 ).
O problema é que na hora de mostrar, se você não puser um espaço entre a representação binária de um caracter e outro, vai dar confusão.