10
votes

Les chiffres hexadécimaux sont-ils jamais négatifs?

sont des chiffres hexadécimaux jamais négatifs? Si oui, alors comment?
Pour binaire, vous auriez signé et non signé .
Comment les représenter-ils-ils dans Hex? J'ai besoin de cela pour une routine hexagonale, je suis sur le point de se lancer.


1 commentaires

Votre question n'est pas claire. Vous parlez-vous à des littéraux entier hexadécimal? ( 0xFFFFFFF == -1 serait un exemple ici).


6 Réponses :


5
votes

Vous allez prendre les formulaires signés et non signés binaires, puis les représentent dans Hex comme vous le feriez un nombre binaire.


0 commentaires

6
votes

Oui, ils peuvent être. C'est la même chose que binaire quant à la façon dont vous l'interprétez (signée vs non signée).


0 commentaires

25
votes

Oui. Par exemple, vous auriez les représentations suivantes dans le binaire 32 bits signé et hex: xxx

comme vous pouvez le constater, la représentation hexagone des nombres négatifs est directement liée à la représentation binaire.


1 commentaires

Cela fait suite à la représentation des nombres négatifs tels qu'ils seraient en binaire. Je sais que c'est la représentation la plus large des nombres binaires signés, cependant, il est spécifique au binaire, non? Cette réponse prend une base 10, effectue un compliment de 2 et génère une conversion de base 16 de la production binaire littérale. Je sais qu'une base "signée" 10 est représentée par un panneau négatif, n'est-ce pas la même chose pour la base 16? -0xf pas converti -15? Je sais qu'un binaire signé nécessite un contexte, non? Parce que 1111 == -1 ou 1111 == 15. Le signe ajoute du contexte. Je n'ai jamais vu un hexagone signé et je suis curieux. Merci!



15
votes

Le bit élevé d'un nombre détermine s'il est négatif. Donc, par exemple, un int est de 32 bits de long, donc si le bit 31 est un 1, il est négatif. Maintenant, comment vous affichez cette valeur être hexadécimale ou décimale peu importe. Donc, les valeurs hexagonales comme xxx

sont toutes négatives, car le bit supérieur est réglé sur 1 xxx


0 commentaires

3
votes

D'une part, pourquoi pas - c'est juste un système numérique positionnel, comme décimal.

D'autre part, ils utilisent normalement la notation hexagonale pour déduire le modèle de bits sous-jacents - et c'est beaucoup plus simple si le nombre est interprété comme non signé.

La réponse est donc - elle est possible, mathématiquement correcte et cohérente en interne, mais défaite le but le plus courant de la notation hexagonale.


0 commentaires

1
votes

en Java, ce sont les limites du type de données integer : xxx