Mas eles não são diferentes, estão representados em bases diferentes.
Lembre que no final, tudo vira binário.
diegofss11
aaa sim!
Entendido!
Vlw
E
entanglement
Todos os valores acima são de certa forma diferentes, já que são representados na memória de formas diferentes (ok, um short e um char ambos são representados como 2 bytes - mas a gente sempre se esquece que um char do Java é mais ou menos como se fosse um “unsigned short” do C ou C++ ou C#).
Mas numericamente eles são iguais.
romarcio
Na verdade todos os tipos menos o char, representam o nº 123.
O char c = 123; na verdade vale {
Para ser o nº 123, ele deveria ficar entre aspas simples char c = '123';.
Quando vc usa o char sem aspas, vc está usando o valor dele em decimal na tabela ASCII.
Não, não, não! char c = ‘123’ é inválido sintaticamente. O valor char c = ‘{’ ou c = 123 é que representam o número 123.
romarcio
entanglement:
romarcio:
Para ser o nº 123, ele deveria ficar entre aspas simples char c = '123';.
Não, não, não! char c = ‘123’ é inválido sintaticamente. O valor char c = ‘{’ ou c = 123 é que representam o número 123.
Claro, é char, entre aspas só aceita um caracter.
Despulpa, foi dezatençção minha.
E
entanglement
De qualquer maneira, você também pode usar:
charc='\u007B';
Não há nada “especial” no tipo char. Ele é um tipo numérico como outro qualquer. Quase todos os tipos primitivos são também numéricos.
O único tipo primitivo que o Java não considera como numérico é o boolean, mais para evitar alguns erros de programação que devido ao próprio valor intrínseco (se você olhar os bytecodes correspondentes ao boolean, vai ver que o false é 0 e o true é 1. )
diegofss11
Mas c = ‘7’ poderia ne ? … ai seria 7 ne ?
ai por exemplo poderia ate comparar
char c = ‘7’; int i = 8
if (c < i )
return true
else
return false
ai no caso retornaria TruE ne ?
E
entanglement
Você está confundindo o caracter ‘7’ (cujo valor é o número 55 em decimal ou 0x37 em hexadecimal - basta procurar em uma tabela ASCII ou Unicode)
com o número 7.
São coisas diferentes.
Portanto, se você fizer esta comparação:
charc='7';if(c<8)
vai constatar que c < 8 retorna false, não true.
E
entanglement
Uma forma radical de pensar é o seguinte. Digamos que você tenha o seguinte caracter:
charch='④';
O código desse caracter (um dígito 4 dentro de uma bolinha) é, em Unicode, U+2463, ou em decimal, 9315.
Ou seja, você também pode escrever em Java:
charch='\u2463';
ou
charch=(char)9315;
e nem por isso ele é a mesma coisa que o número 4. Não é porque um caracter tem a forma do número 4 (mesmo o caracter ‘4’) que seu valor é 4.