Maison > Questions et réponses > le corps du texte
我知道这个问题~有点无厘头和傻乎乎。还是想请人解答一下~
----------可能目前脑子正处于抽风阶段----------
首先,我知道int占4个字节,包含正负2的31次方内的数字,也就是基本可以表示10位数字。
那么根据Ascll里,一个数字占用一个字节的规则来思考。
我让int按照这种规则来储存数字,是不是应该只能储存最多4位数字???
还请明白人~指出我这样思考的错误点在哪里?或者告知正确的解答方式~。
天蓬老师2017-04-18 09:28:53
............
'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
高洛峰2017-04-18 09:28:53
'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]
黄舟2017-04-18 09:28:53
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
大家讲道理2017-04-18 09:28:53
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.
大家讲道理2017-04-18 09:28:53
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.
10
10 10 * 10 = 10 à la puissance 4 = 10000 Bien sûr, le résultat peut ne représentent que 4 chiffres.
巴扎黑2017-04-18 09:28:53
Cela semble être une question idiote. . . ,,Les octets et le nombre de chiffres stockés ne sont certainement pas deux concepts différents