'1'[char] et 1[int] sont différents Parce qu'ils sont exprimés de différentes manières en binaire '1' =>00110001[char est un octet, huit bits, il aura un spécial ce qui signifie, par exemple, qu'il peut représenter des symboles ou quelque chose] 1 =》000000000000000000000000000000001 [int est de 4 octets, 32 bits, utilisé uniquement pour représenter des nombres]
Essentiellement similaire à l'idée ci-dessus. Tout d'abord, ce sont deux concepts À mon avis, l'un signifie stockage et l'autre signifie affichage. Par exemple : nous connaissons tous le type booléen. La même valeur, dans certains cas, peut être exprimée par 1, 0, ou vrai ou faux.
Le malentendu de l’affiche réside dans l’erreur conceptuelle. Tout d'abord, analysons la logique de l'affiche et découvrons les erreurs : ∵ ① int = 4 octets ; ② En Ascll, 1 nombre = 1 octet ∴ int = 4 nombres, déduisant ainsi que int est le plus Stocke 4 chiffres.
On voit que la condition ② est fausse, donc la réponse obtenue est fausse Analyse : 1 chiffre = 1 octet, puis 1 octet = 1 chiffre ? On peut dire qu'ils sont égaux dans certains cas, c'est à dire en base 256, mais l'affiche a utilisé la base 10 pour recouvrir la base 256, donc c'est faux Pourquoi est-ce en base 256 ? Parce qu'1 octet peut représenter n'importe quelle valeur comprise entre 0 et 255, donc int peut stocker jusqu'à 4 chiffres de nombres à 256 chiffres
Pour résumer, ce que dit l'affiche est correct dans certains cas, mais il faut ajouter un prérequis, qui est un nombre de base 256
ASCII utilise des nombres pour exprimer des chaînes, et les nombres sont stockés en mémoire à un niveau avant ASCII. Vous pouvez simplement le comprendre comme ceci : Mémoire (0 et 1) => Les nombres (généralement aussi peuvent directement être d'autres bases. ) => Caractères ou lettres chinois (l'affichage final exprimé par diverses bases)
Pour faire simple : La première a un total de 32 grilles, chaque grille peut avoir deux situations, La seconde n'a qu'un total de 4 grilles, et chaque grille a dix situations (0 à 9 ), L'un est 2 élevé à la puissance 32, et l'autre est 10 élevé à la puissance 4. Si vous changez à la fois la base et la puissance, le résultat sera certainement différent. Le premier est en fait le système binaire des ordinateurs, tandis que la pensée du second devient le système décimal que nous utilisons quotidiennement.
Pour être précis : Le code ascii contient 256 caractères, dont des chiffres, des lettres anglaises, des symboles, etc. Les chiffres n'en représentent que 10 (0 à 9). Alors pourquoi les ascii peuvent-ils représenter autant de caractères ? Il faut savoir (si vous ne savez pas, vous n'y pouvez rien), un code ASCII occupe un octet, et un octet comporte huit bits. Chaque bit n'a que deux situations, 0 et 1, donc la combinaison de 8 bits doit être : 2 X 2 X 2 X 2 X 2 X 2 X 2 X 2 = 8 sur 2 Puissance = 256 Autrement dit, 8 bits peuvent représenter un total de 256 situations. Si les 256 situations sont utilisées pour représenter des nombres, 256 nombres de 0 à 255 peuvent être représentés.
D'accord, si vous comprenez cela, alors il sera facile de comprendre que int a 4 octets. C'est une condition préalable que vous connaissez également. Comme expliqué précédemment, un octet peut représenter 256 situations, donc 4 octets selon l'algorithme précédent sont : 256 X 256 X 256 X 256 = 2 à la puissance 8 X 2 à la puissance 8 X 2 à la 8ème puissance Représente 0 à 4 294 967 295.
Vous avez secrètement changé les concepts avant et après. Vous avez ensuite transformé la question en :
10 10 10 * 10 = 10 à la puissance 4 = 10000 Bien sûr, le résultat peut ne représentent que 4 chiffres.
............
'1' ! = 1
'2'! = 2
'3' ! = 3
(1)10 = (1)2
(2)10 = (10)2
(3)10 = (11)2
le caractère occupe un octet
32 bits int occupe quatre octets
'1'[char] et 1[int] sont différents
Parce qu'ils sont exprimés de différentes manières en binaire
'1' =>00110001[char est un octet, huit bits, il aura un spécial ce qui signifie, par exemple, qu'il peut représenter des symboles ou quelque chose]
1 =》000000000000000000000000000000001 [int est de 4 octets, 32 bits, utilisé uniquement pour représenter des nombres]
Essentiellement similaire à l'idée ci-dessus.
Tout d'abord, ce sont deux concepts À mon avis, l'un signifie stockage et l'autre signifie affichage.
Par exemple : nous connaissons tous le type booléen. La même valeur, dans certains cas, peut être exprimée par 1, 0, ou vrai ou faux.
Le malentendu de l’affiche réside dans l’erreur conceptuelle.
Tout d'abord, analysons la logique de l'affiche et découvrons les erreurs :
∵ ① int = 4 octets ; ② En Ascll, 1 nombre = 1 octet ∴ int = 4 nombres, déduisant ainsi que int est le plus Stocke 4 chiffres.
On voit que la condition ② est fausse, donc la réponse obtenue est fausse
Analyse :
1 chiffre = 1 octet, puis 1 octet = 1 chiffre ?
On peut dire qu'ils sont égaux dans certains cas, c'est à dire en base 256, mais l'affiche a utilisé la base 10 pour recouvrir la base 256, donc c'est faux
Pourquoi est-ce en base 256 ? Parce qu'1 octet peut représenter n'importe quelle valeur comprise entre 0 et 255, donc int peut stocker jusqu'à 4 chiffres de nombres à 256 chiffres
Pour résumer, ce que dit l'affiche est correct dans certains cas, mais il faut ajouter un prérequis, qui est un nombre de base 256
ASCII utilise des nombres pour exprimer des chaînes, et les nombres sont stockés en mémoire à un niveau avant ASCII. Vous pouvez simplement le comprendre comme ceci :
Mémoire (0 et 1) => Les nombres (généralement aussi peuvent directement être d'autres bases. ) => Caractères ou lettres chinois (l'affichage final exprimé par diverses bases)
Ils ne sont pas au même niveau.
Pour faire simple :
La première a un total de 32 grilles, chaque grille peut avoir deux situations,
La seconde n'a qu'un total de 4 grilles, et chaque grille a dix situations (0 à 9 ),
L'un est 2 élevé à la puissance 32, et l'autre est 10 élevé à la puissance 4. Si vous changez à la fois la base et la puissance, le résultat sera certainement différent.
Le premier est en fait le système binaire des ordinateurs, tandis que la pensée du second devient le système décimal que nous utilisons quotidiennement.
Pour être précis :
Le code ascii contient 256 caractères, dont des chiffres, des lettres anglaises, des symboles, etc. Les chiffres n'en représentent que 10 (0 à 9).
Alors pourquoi les ascii peuvent-ils représenter autant de caractères ?
Il faut savoir (si vous ne savez pas, vous n'y pouvez rien), un code ASCII occupe un octet, et un octet comporte huit bits.
Chaque bit n'a que deux situations, 0 et 1, donc la combinaison de 8 bits doit être :
2 X 2 X 2 X 2 X 2 X 2 X 2 X 2 = 8 sur 2 Puissance = 256
Autrement dit, 8 bits peuvent représenter un total de 256 situations. Si les 256 situations sont utilisées pour représenter des nombres, 256 nombres de 0 à 255 peuvent être représentés.
D'accord, si vous comprenez cela, alors il sera facile de comprendre que int a 4 octets. C'est une condition préalable que vous connaissez également.
Vous avez secrètement changé les concepts avant et après. Vous avez ensuite transformé la question en :Comme expliqué précédemment, un octet peut représenter 256 situations, donc 4 octets selon l'algorithme précédent sont :
256 X 256 X 256 X 256 = 2 à la puissance 8 X 2 à la puissance 8 X 2 à la 8ème puissance Représente 0 à 4 294 967 295.
10
10 10 * 10 = 10 à la puissance 4 = 10000 Bien sûr, le résultat peut ne représentent que 4 chiffres.
Cela semble être une question idiote. . . ,,Les octets et le nombre de chiffres stockés ne sont certainement pas deux concepts différents