1

我只需要将整数转换为十六进制。实际上我有一个 char 数组,我在其中存储十六进制值。

int var;
var=[self getValue];
char hexValues[5];
hexValues[0]= 0x02;
hexValues[1]= 0x04;
hexValues[2]= [self getHexFromInt:var];

现在我认为getHexFromInt()返回的hex int值等于传递的 decimal "var"。它不会包含0x.. 格式,这就是为什么我认为 char 数组会接受它作为普通字符。所以请建议我如何从 方法中返回"0x.." 格式的字符。getHexFromInt()

4

1 回答 1

3

十六进制值是整数值

十六进制只是显示整数的一种方式。

如果你想创建一个整数的十六进制表示的字符串,你可以去:

char hexStr[20];
sprintf(hexStr,"0x%x",var);

如果需要,您还可以用 0 填充数字,方法是 %0(所需的总位数)x

例如:

int var = 0x123;
sprintf(hexStr,"0x%08x",var);

将导致 hexStr 被“0x00000123”填充

于 2013-05-23T06:33:53.097 回答