C J*_*son 38
这段代码
int a = 5;
printf("%x\n", a);
Run Code Online (Sandbox Code Playgroud)
版画
5
Run Code Online (Sandbox Code Playgroud)
这段代码
int a = 5;
printf("0x%x\n", a);
Run Code Online (Sandbox Code Playgroud)
版画
0x5
Run Code Online (Sandbox Code Playgroud)
这段代码
int a = 89778116;
printf("%x\n", a);
Run Code Online (Sandbox Code Playgroud)
版画
559e7c4
Run Code Online (Sandbox Code Playgroud)
如果以格式大写x,则将十六进制值大写:
int a = 89778116;
printf("%X\n", a);
Run Code Online (Sandbox Code Playgroud)
版画
559E7C4
Run Code Online (Sandbox Code Playgroud)
如果要打印指针,请使用p格式说明符:
char* str = "foo";
printf("0x%p\n", str);
Run Code Online (Sandbox Code Playgroud)
版画
0x01275744
Run Code Online (Sandbox Code Playgroud)
Pit*_*kos 21
以下代码采用整数形式,并以十六进制格式生成一个字符串:
int num = 32424;
char hex[5];
sprintf(hex, "%x", num);
puts(hex);
Run Code Online (Sandbox Code Playgroud)
给
7ea8
Run Code Online (Sandbox Code Playgroud)
小智 10
有趣的是,这些答案的使用printf就像给定的一样.
printf将整数转换为十六进制字符串值.
//*************************************************************
// void prntnum(unsigned long n, int base, char sign, char *outbuf)
// unsigned long num = number to be printed
// int base = number base for conversion; decimal=10,hex=16
// char sign = signed or unsigned output
// char *outbuf = buffer to hold the output number
//*************************************************************
void prntnum(unsigned long n, int base, char sign, char *outbuf)
{
int i = 12;
int j = 0;
do{
outbuf[i] = "0123456789ABCDEF"[num % base];
i--;
n = num/base;
}while( num > 0);
if(sign != ' '){
outbuf[0] = sign;
++j;
}
while( ++i < 13){
outbuf[j++] = outbuf[i];
}
outbuf[j] = 0;
}
Run Code Online (Sandbox Code Playgroud)