Ce que je me demandais, comment les nombres négatifs devraient-ils être indiqués en hexadécimal? Comme -0xff ou 0x-ff? Je suppose le premier, mais je ne sais pas.
Luc
7
@Luc Le premier est correct. Bien que plus souvent je vois juste 0xffffffffet tel. ( 0xffffffff = -1pour un int 32 bits en supposant le complément de 2)
Mysticial
@Luc Les nombres négatifs sont représentés en binaire en utilisant le complément de 2 - une manière intelligente qui ne nécessite pas le signe «-». Donc, il s'agit essentiellement de convertir du binaire en hexadécimal, négatif ou positif.
Shuvo Sarker
@ShuvoSarker Merci pour l'ajout! C'est juste la représentation de la mémoire, je suppose, similaire à si nous convenons que nous avons un ensemble de nombres de 0 à 999 et que 1000 à 1999 représenterait les nombres négatifs. Ma question portait sur la notation lisible par l'homme, bien que savoir comment les ordinateurs le font pourrait aider quelqu'un d'autre, alors merci :)
Luc
16
En C et dans les langages basés sur la syntaxe C, le préfixe 0xsignifie hexadécimal (base 16).
C'est un préfixe pour indiquer que le nombre est en hexadécimal plutôt que dans une autre base. Le langage de programmation C l'utilise pour indiquer au compilateur.
Exemple :
0x6400se traduit par 6*16^3 + 4*16^2 + 0*16^1 +0*16^0 = 25600.Lorsque le compilateur lit 0x6400, il comprend que le nombre est hexadécimal à l'aide du terme 0x. Habituellement, nous pouvons comprendre par (6400)16 or (6400)8ou n'importe quelle base.
0x prefix C++
vous amène ici maintenant :)Réponses:
Les littéraux commençant par
0x
sont des entiers hexadécimaux. (base 16)Le nombre
0x6400
est25600
.Pour un exemple comprenant des lettres (également utilisé en notation hexadécimale où A = 10, B = 11 ... F = 15)
Le nombre
0x6BF0
est27632
.la source
0xffffffff
et tel. (0xffffffff = -1
pour un int 32 bits en supposant le complément de 2)En C et dans les langages basés sur la syntaxe C, le préfixe
0x
signifie hexadécimal (base 16).Ainsi, 0x400 = 4 × (16 2 ) + 0 × (16 1 ) + 0 × (16 0 ) = 4 × ((2 4 ) 2 ) = 2 2 × 2 8 = 2 10 = 1024, ou un K binaire .
Et donc 0x6400 = 0x4000 + 0x2400 = 0x19 × 0x400 = 25K
la source
C'est un nombre hexadécimal.
la source
Les nombres commençant par
0x
sont hexadécimaux (base 16).0x6400
représente25600
.Convertir,
Les facteurs 1, 16, 256, etc. sont les puissances croissantes de 16.
ou
la source
FACILE
C'est un préfixe pour indiquer que le nombre est en hexadécimal plutôt que dans une autre base. Le langage de programmation C l'utilise pour indiquer au compilateur.
Exemple :
0x6400
se traduit par6*16^3 + 4*16^2 + 0*16^1 +0*16^0 = 25600.
Lorsque le compilateur lit0x6400
, il comprend que le nombre est hexadécimal à l'aide du terme 0x. Habituellement, nous pouvons comprendre par(6400)16 or (6400)8
ou n'importe quelle base.L'espoir a aidé d'une certaine manière.
Bonne journée,
la source