Soma de 2 char

3 respostas
L

Senhores …

Um char eh um inteiro de 16 bits …
Um short eh um inteirro de 16 bits tambem …

Por que a soma de dois char não cabe em um short ???

char c1 = ‘\n;

short sc1 = (short) c1;

System.out.printf(Valor de SC1=%1$d\n,sc1);

char c2 = ‘\n;

//ERRO : char c3_1 = (short) (c1 + c2);

int c3 = (int) (c1 + c2);

System.out.printf(Valor de C3=%1$d\n,c3);

3 Respostas

R

Caro companheiro, sendo que um short pode ser considerado como inteiro e um char também e ambos são um inteiro de 16 bits, sendo assim se você adicionar dois char você ultrapassará o tamanho do tipo primitivo.

S

Nem mesmo um único char vai caber no short e vice-versa.

char é unsigned e short é signed.

J

Caber até cabe, mas o operador + em char retorna int, e int não cabe em short:

char a = 'A'; char b = 'B'; short s = a+b; //Type mismatch: cannot convert from int to short short s2 = (short) (a+b); //ok

Criado 15 de setembro de 2006
Ultima resposta 16 de set. de 2006
Respostas 3
Participantes 4