Pessoal,
Bom dia,
Alguem poderia me explicar o porque deste resultado ! ser 56 ?
public static void main(String[] args)
{
char a = 4;
System.out.println(a + '4');
}
Obrigado.
Pessoal,
Bom dia,
Alguem poderia me explicar o porque deste resultado ! ser 56 ?
public static void main(String[] args)
{
char a = 4;
System.out.println(a + '4');
}
Obrigado.
Qual é a diferença entre os dois programas abaixo?
public static void main(String[] args)
{
char a = 4;
System.out.println(a + '4'); // resposta: 4 somado com 52 = 56
}
public static void main(String[] args)
{
char a = 4;
System.out.println(a + "4"); // resposta: 4 concatenado com "4" = "44"
}
[quote=diego2005]Por que o valor de ‘a’ na tabela Unicode é 52…
http://pt.wikipedia.org/wiki/Unicode
T+[/quote]
Hummm… foi o que pensei, mas se você olhar direito o enunciado… porque o resultado não é 104?
Na verdade, não é o valor de a, mas o valor de ‘4’ que é 52. O valor de a é 4 mesmo, que corresponde a algum caracter esquisito (bel?).
ASCII 4 = EOT (End Of Transmission)
Obviamente o número 4 foi usado no exercício para lembrar que o “char” na verdade é um “unsigned short” - é o único tipo “unsigned” em Java.
Eu lamento profundamente que o sr. James Gosling tenha definido o “byte” como um tipo “signed” (e isso que ele é um engenheiro, basicamente); se ele fosse um tipo “unsigned”, muitos “maskings” desnecessários seriam evitados.
char aceita um inteiro… entao cada letra tem um valor unicode… agora de vc queria concatenar ali deveria usar o " ". Agora fiquei com uma duvida o char aceita ate 127 ou 128?
O “char” do Java ocupa 2 bytes e o valor numérico vai de 0 até 65535. Por exemplo, o caracter 愛 (cuja pronúncia em japonês e mandarim é “AI” e quer dizer amor) tem o código Unicode U+611B, ou seja, em decimal é 24859.
char ai = 24859;
ou
char ai = '\u611B';
Pode ser que você não consiga visualizar o caracter acima; instale uma fonte (como MS Mincho) no seu computador que tenha esses caracteres chineses e japoneses.
[quote=ViniGodoy]Hummm… foi o que pensei, mas se você olhar direito o enunciado… porque o resultado não é 104?
Na verdade, não é o valor de a, mas o valor de ‘4’ que é 52. O valor de a é 4 mesmo, que corresponde a algum caracter esquisito (bel?).[/quote]
Nem notei isso…rsrssrsr
a = 97
Acho que não li o código direito…
Me desculpe…
Vc deve estar confundindo com byte, que aceita de -128 até 127(8 bits ou 1 Byte).Como disse o Thingol, char são 16bits.
Vc deve estar confundindo com byte, que aceita de -128 até 127(8 bits ou 1 Byte).Como disse o Thingol, char são 16bits. [/quote]
char é um inteiro de 16 bits sem sinal. um literal char pode ser representado como um único caracter em aspas simples ‘J’, o valor unicode ‘\u0041’ ou um valor inteiro, desde que menor do que 65536 – segundo o livro da Kathy Sierra.
Isso eu sei, eu pensei q ele tinha confundido char com byte.A saber:
char vai de ‘\u0000’ até ‘\uffff’(inclusive), que é, de 0 até 65535 do Unicode.