[Kommentar] von @SaitoAtsushi (http://qiita.com/7of9/items/92f5a0850370d3f3e558#comment-4cd1207dc70f48f1020d).
*dstPtr++ = "0123456789ABCDEF"[nibble];
Es wird ein verlinkter Artikel für die zukünftige Suche sein.
Kann es auf etwas anderes als die Sequenz von 0 nach F umgeleitet werden?
Ein Beispiel für den oben genannten Verwendungsfehler wurde in stackoverflow veröffentlicht.
http://ideone.com/LoFO3r
#include<stdio.h>
char *convert(unsigned int num, int base)
{
static char buff[33];
char *ptr;
ptr=&buff[sizeof(buff)-1];
*ptr='\0';
do
{
*--ptr="0123456789abcdef"[num%base];
num/=base;
} while(num!=0);
return(ptr);
}
int main(){
puts(convert(65,8));
puts(convert(65,10));
puts(convert(65,16));
printf("%s = %s = %sn", convert(65,8), convert(65,10), convert(65,16));
return 0;
}
Ergebnis
101
65
41
101 = 01 = 01n
~~ Es scheint, dass du hier vorsichtig sein musst. ~~
Ich bin der Meinung, dass das obige Problem durch etwas anderes als das Schreiben "0123456789ABCDEF" [nibble]; "verursacht wird.
http://ideone.com/0yHNQ0