Char

10 respostas
W

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.

10 Respostas

diego2005

Por que o valor de ‘a’ na tabela Unicode é 52…

http://pt.wikipedia.org/wiki/Unicode

T+

T

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"
     }
ViniGodoy

diego2005:
Por que o valor de ‘a’ na tabela Unicode é 52…

http://pt.wikipedia.org/wiki/Unicode

T+

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?).

T

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.

LPJava

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?

T

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.

diego2005

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?).

Nem notei isso…rsrssrsr

a = 97

Acho que não li o código direito…

Me desculpe…

Ironlynx

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.

peczenyj

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.

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.

Ironlynx

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.

Criado 27 de junho de 2007
Ultima resposta 27 de jun. de 2007
Respostas 10
Participantes 7