2017-07-13 4 views
0

je comprendrais pourquoi la sortie est 3 et non un char (caractère unicode « 5 »)pourquoi les écrans de sortie 3 et non un caractère dans java

char c='5'; 
c = (char) (c - 2); 
System.out.println(c); 

et pourriez-vous s'il vous plaît expliquer quelle est la différence beetween Code Caractère ASCII et unicode?

vous remercie à l'avance :)

+1

Copie possible de [Quelle est la différence entre ASCII et Unicode?] (Https://stackoverflow.com/questions/19212306/whats-the-difference-between-ascii-and-unicode) – Daedric

+1

La soustraction active le caractère ' "5" dans le caractère "3". Voir par exemple [cette table ASCII] (http://www.asciitable.com/) pour comprendre pourquoi. –

+1

Que voulez-vous dire "pas un char"? C'est le char '' 3 '' - on ne sait pas ce que vous demandez. –

Répondre

2

C'est un caractère. C'est un personnage représentant le chiffre 3, tout comme '3' est un personnage sur votre clavier.

Lorsque vous en soustrayez un à un caractère, vous obtenez le caractère immédiatement avant cela. Par exemple, 'B' - 1 = A.

Vous commencez avec le caractère '5' et soustrayez deux, en donnant le caractère '3'. Si vous soustrayiez 6, vous n'obtiendriez pas -1, vous obtiendriez un caractère aléatoire ('/' je pense). Fondamentalement, cette soustraction fonctionne parce que les caractères 0-9 sont stockés contiguës.

1

La sortie est le char'3', pas le nombre 3.

Lorsque vous soustrayez 2 du charbon '5' et un résultat de type char, vous obtenez l'omble chevalier '3'. Le type char est un type primitif numérique. Chaque caractère a une valeur entière correspondante comprise entre 0 et 2^16-1. La valeur entière du caractère '3' est inférieure de 2 à la valeur du caractère '5'.