在c或obj-c中将int转换为hexstring

时间:2015-01-31 20:14:48

标签: c string hex

我有一个

int num = 69;

我想要一个字符串,其十六进制值为“ 7E

char result;
sprintf(&result, %X, num);

似乎工作但只给我拳头' 7 '我怎么能得到“ 7E ”?

3 个答案:

答案 0 :(得分:1)

结果的问题是它有一个字符的空间,而不是两个+ null终止符。你需要至少三个char

以下是如何做到这一点:

char buf[9]; // Make the buffer larger to fit bigger numbers
sprintf(buf, "%02X", num);

Demo.

在Objective-C中你可以这样做:

NSString *res = [NSString stringWithFormat:@"%0X", num];

答案 1 :(得分:1)

sprintf生成一个字符串。 结果是一个字符。重新声明它并删除&

char result[10];  // or something
sprintf(result, "%X", num);

答案 2 :(得分:0)

你需要足够的缓冲区用于十六进制字符串,因为char只能给你1个字符的缓冲区。

    int main()
    {
        int num=69;
        char *hex_string = new (char[2]);
        sprintf(hex_string, "%X", num);
        delete(hex_string);
        return 1;
    }