Quelle est la taille de l'entier de 8 bits, 16 bits, 32 bits des processeurs/microcontrôleurs?
Ce qui est de la taille d'un entier sur 8 bits, 16 bits, 32 bits des processeurs/microcontrôleurs ?
Je suppose que cela dépend de l'organisation interne de l'accumulateur/register taille. Mais pas sûr.
Grâce
c# int de 32 bits sur tous les Processeurs qui C# peut s'exécuter.
Cela dépend de la langue et de la mise en œuvre.
social.msdn.microsoft.com/Forums/en-US/...
FWIW,
non, c'est -32767 à compte pour les deux autres permis codages de nombres négatifs, qui ont tous deux plus de et moins zéro, donc de perdre -32768.
Cela dépend de la langue et de la mise en œuvre.
social.msdn.microsoft.com/Forums/en-US/...
FWIW,
int
en C est toujours a au moins l'intervalle [-32767,32767].non, c'est -32767 à compte pour les deux autres permis codages de nombres négatifs, qui ont tous deux plus de et moins zéro, donc de perdre -32768.
OriginalL'auteur Kiran | 2015-04-14
Vous devez vous connecter pour publier un commentaire.
Je ne suis au courant d'un langage de programmation qui définit une
integer
type de données, mais il est rarement utilisé pour des 8 et 16 bits architectures. C est la langue la plus utilisée pour la programmation de 8 bits, 16 bits, et les architectures 32 bits, donc je suppose que vous êtes à la recherche d'une réponse dans le contexte de la C.Il y a plusieurs "integer" types de données " dans C:
char
,short
,int
,long
, etc..., mais je vais supposer que vous avez vraiment dire, c'est laint
type de données.La taille d'un
int
n'est pas définie par l'architecture, il est défini par le langage de programmation C spécification, et il est extrêmement vague.Je interpréter cela signifie qu'il est déterminé par la mise en œuvre du compilateur.
Vous pouvez trouver la dernière version publiquement disponible de la norme C11 (au moment de la rédaction de cette réponse) ici: http://www.open-std.org/jtc1/sc22/wg14/www/standards.html.
Voici quelques tests, j'ai couru pour l'aider à répondre à cette question:
sizeof(int)
renvoie 2 (par exemple, 16-bits) lors de la compilation avec GCC 4.3.2 (WinAVR 20081205)sizeof(int)
renvoie 4 (par exemple 32 bits) lors de la compilation avec GCC 4.9.2.sizeof(int)
renvoie 4 (par exemple 32 bits), indépendamment de savoir si il est compilé pour 32-bits ou 64-bits. Testé avec Visual Studio 2013 et GCC 4.9.2.Plus intéressante, la réponse devrait être pourquoi ces valeurs ont été choisies.
OriginalL'auteur Verax
C:
Entier est défini par le c-norme comme "naturel" de la taille des données. La mise en œuvre de C-Compilateurs pour diverses plates-formes sont autorisés à fixer le nombre entier de taille pour la plupart. Je pense que l'idée derrière tout cela est que l'int doit refléter la taille des données qui fonctionne le mieux (plus rapide, la ressource la plus accueillante d') pour la plate-forme donnée.
OriginalL'auteur jwsc
Les nombres entiers peuvent être de toute taille. Le processeur n'a pas beaucoup dire. Par exemple, en Java, int = 32 bits. Dans VB.NET il existe Int16, Int32, et Int64, tandis que la valeur par défaut Entier = 32 bits.
OriginalL'auteur Eugene Lee