J'ai une liste de nombres comme ci-dessous:
0, 16, 32, 48 ...
J'ai besoin de sortir ces nombres en hexadécimal comme:
0000,0010,0020,0030,0040 ...
J'ai essayé des solutions telles que:
printf("%.4x",a); // where a is an integer
mais le résultat que j'ai obtenu est:
0000, 0001, 0002, 0003, 0004 ...
Je pense que je suis proche là-bas. Quelqu'un peut-il aider comme je ne le suis passo bon à printf
in C.
Merci.
Essayer:
printf("%04x",a);
0
- Insère le chiffre à gauche avec zeroes (0) au lieu d'espaces, où padding est spécifié.4
(largeur) - Nombre minimal de caractères .__ à imprimer. Si la valeur À imprimer est inférieure à Ce nombre, le résultat est justifié à droite Dans cette largeur en ajoutant à gauche Le caractère du pavé. Par défaut, ceci est Un espace vide, mais le zéro initial que nous avons utilisé Spécifie un zéro comme caractère de pavé . La valeur n'est pas tronquée même si le résultat est plus grand x
- Spécificateur pour hexadécimal entier.Plus ici
je l'utilise comme ça:
printf("my number is 0x%02X\n",number);
// output: my number is 0x4A
Il suffit de changer le nombre "2" en un nombre quelconque de caractères que vous voulez imprimer;)
Votre code n'a pas de problème. Il imprime comme vous le souhaitez. Alternativement, vous pouvez faire ceci:
printf("%04x",a);
Vous pouvez utiliser le code d'extrait suivant:
#include<stdio.h>
int main(int argc, char *argv[]){
unsigned int i;
printf("decimal hexadecimal\n");
for (i = 0; i <= 256; i+=16)
printf("%04d 0x%04X\n", i, i);
return 0;
}
Il imprime les nombres décimaux et hexadécimaux à 4 endroits sans remplissage.