2015-12-21 1 views
-4

En C, est-il possible de forcer un char non signé à imprimer en hexadécimal, pas avec% x, mais dans la petite case carrée qui affiche les quatre nombres hexadécimaux, mais qui ne prend qu'un seul caractère, par exemple ?Impression de valeurs de caractères en hexadécimal à l'intérieur d'un carré de 1 caractère en C?

+2

"dans la petite boîte carrée qui affiche les quatre nombres hexadécimaux, mais ne prend qu'un caractère" ... qu'est-ce que cela signifie? De quelle "petite boîte carrée" parlez-vous? Et non, l'exemple n'aide pas - comment cela est-il lié aux "quatre nombres hexadécimaux"? – kaylum

+0

Eh bien, la "petite boîte" dans l'exemple que j'ai donné a quatre nombres hexadécimaux, "8F" dans la rangée du haut et "69" dans la rangée du bas. Chacun est un octet, donc il y a deux octets dedans. Par exemple, si vous faites 'unsigned char c = 0x1e; printf ("% c", c); 'le résultat sera une telle boîte avec" 00 "dans la rangée du haut et" 1E "dans la rangée du bas. Je veux forcer printf à le faire avec n'importe quel char non signé que je lance dessus. – gmoss

+0

@klump Certains périphériques de sortie, lorsqu'ils sont confrontés à un caractère pour lequel il n'y a pas de glyphe dans la police actuelle, créeront un glyphe composé d'une case carrée contenant les chiffres hexadécimaux du code de caractère –

Répondre

2

Non, ce n'est pas possible.

Ceci n'est pas lié à C, mais à la police utilisée par votre terminal. C sort les caractères en octets; votre terminal est responsable de choisir comment les afficher en pixels. (Vous pouvez aussi demander comment mettre le texte en italique.)

+0

Ok, eh bien, c'est malheureux. Je vous remercie. – gmoss