2010-08-17 20 views

Répondre

4

En fait, il serait être:

char c = 84; 
char result[3]; 
sprintf(result,"%02x",c); 
0

Le code suivant, en utilisant snprintf() devrait fonctionner:

#include <stdio.h> 
#include <string.h> 

int main() 
{ 
    char myChar = 'A'; // A = 0x41 = 65 
    char myHex[3]; 
    snprintf(myHex, 2 "%02x", myChar); 

    // Print the contents of myHex 
    printf("myHex = %s\n", myHex); 
} 

snprintf() est une fonction qui fonctionne comme printf(), sauf qu'il remplit un tableau char avec un maximum de N caractères. La syntaxe de snprintf() est:

int snprintf(char *str, size_t size, const char *format, ...) 

Où str est la chaîne à « sprint » à, la taille est le nombre maximum de caractères pour écrire (dans notre cas, 2), et le reste est comme la printf() normale

1

tout cela est loin :-) facile à lire à

#define H(x) '0' + (x) + ((x)>9) * 7 
char c = 84; 
char result[3] = { H(c>>4), H(c&15) };