将整数值转换为十六进制字符串

时间:2013-01-15 11:13:01

标签: c hex

我有一个从函数返回的整数:

   int a = func();

例如,a = 236

我需要将其视为整数的十六进制表示,并将其十进制表示存储在另一个变量中,以便在打印时如此:

  printf("%x", variable)

......输出应为:

 236

2 个答案:

答案 0 :(得分:4)

所有值仅以二进制格式存储。如果要使用%d格式字符串打印十进制正式打印中的值,或者如果要以十六进制打印值,则使用%x进行打印。

Sameway我们也可以分配十进制和十六进制格式的值。

int a = 236;
int b = 0x236;
printf("%d", a); //it will print 236
printf("%x", a); //it will print EC
printf("%d", b); //it will print 566
printf("%x", b); //it will print 236

我们也可以使用%o格式字符串以八进制形式打印存储的二进制值。

答案 1 :(得分:3)

如果我已经理解了你需要什么,这个小代码片段就可以了。

#include <stdio.h>

int main()
{
    char num[128];
    int a=236;
    int hex;

    sprintf(num, "0x%d", a);

    sscanf(num, "%x", &hex);

    printf("Hex: %x\n", hex);
}

输出

Hex: 236