Pourquoi les adresses mémoire sont représentés à l'aide de nombres hexadécimaux?
Chaque fois que je vois les programmes en C qui font directement référence à un emplacement spécifique sur la mémoire (par exemple, une barrière de mémoire) il est fait avec des nombres hexadécimaux, également dans windows lorsque vous obtenez une segfualt il présente la mémoire segfualted avec un nombre hexadécimal.
Par exemple: *(0x12DF)
Je me demande pourquoi les adresses mémoire sont représentés à l'aide de nombres hexadécimaux?
Est-il une raison particulière pour que ou c'est juste une convention?
Parce que les nombres hexadécimaux sont
Je vais faire cette blague. Thats it! Vous êtes
0xC001
.Je vais faire cette blague. Thats it! Vous êtes
0xDEAD
!OriginalL'auteur the_drow | 2011-03-16
Vous devez vous connecter pour publier un commentaire.
Mémoire est souvent manipulées en termes d'unités plus grandes, comme des pages ou segments, qui
ont tendance à avoir les tailles qui sont des puissances de 2. Donc, si les adresses sont exprimées en hexadécimal, c'est
beaucoup plus facile à lire que la page+offset ou d'autres constructions similaires. Virgule est difficile parce que
de ce fichus facteur de 5, binaire et les adresses sont trop longues pour être facilement lisible.
Pourquoi voulez-vous dire "Décimal est difficile à cause de ce fichus facteur de 5" ? la conversion entre la base 10 et en base 2 ?
OriginalL'auteur Jim Lewis
Son beaucoup plus court chemin pour représenter ce qui pourrait être écrit en binaire. Il est également très agréable et facile à convertir en hexadécimal en binaire et en arrière. Chacun des 4 chiffres de binaire correspond à un chiffre de l'hexagone.
OriginalL'auteur BinaryTox1n
Convention et de commodité: hex montre plus clairement ce que la relation différents pointeurs ont à l'adresse de la segmentation. (Par exemple, les bibliothèques partagées sont habituellement chargés sur le même hex limites, et le segment de données est également sur une même limite.) DEC mini ordinateur convention préféré octal, mais IBM hex préférence gagné dans la pratique.
(Comme pour pourquoi c'est important: ce qui est plus facile à retenir,
0xb73eb000
ou 3074338816? C'est l'adresse de l'un des objets partagés dans mon shell en cours surjinx
.)OriginalL'auteur geekosaur
C'est la plus courte, la commune de format de nombre, donc les chiffres ne prennent pas beaucoup de place et tout le monde sait ce qu'ils signifient.
Je ne peux certainement pas lire base64 couramment.
Même Base32 est plus courte, mais l'avantage de hex est qu'un chiffre est exactement la moitié d'un octet.
OriginalL'auteur Femaref
Ordinateur ne comprend que le langage binaire, qui est un ensemble de 0 et de 1. Cela signifie que SUR on/OFF. Comme dans le cas de la lisibilité, le nombre binaire qui peut représenter certains d'adresses ou de données doit être converti en format lisible par l'homme. L'hexadécimal est l'un d'entre eux. Mais la question peut être la raison pour laquelle nous avons converti en binaire à l'HEXADÉCIMAL seulement pourquoi pas décimal, octal, etc. La réponse est hexagone est l'un de ceux qui peuvent être facilement convertis avec le moins de frais généraux sur les deux HW ainsi que SW. c'est pourquoi nous utilisons des adresses comme HEX. Mais en interne, ils sont utilisés comme binaire.
Espère que cela aide 🙂
OriginalL'auteur The joker
Technologies ne cessent de changer avec le temps..et ils peuvent varier.. comme en Turbo C++, int taille est de 2 et dans Borland, ses 4
ainsi, l'allocation de mémoire pour les divers types de données (qui peut varier), la portée maximale (hexadécimal - base 16) est fourni.. de telle sorte que u de ne pas avoir à mettre à niveau votre RAM pour les nouveaux à venir sofwares. 🙂
OriginalL'auteur SBhanu