我正在尝试制作一个将int作为参数并返回char类型的十六进制的函数。 这是函数:

char toHex(int dec)
{
    std::stringstream a;
    a << std::hex << dec;
    return a.str().c_str()[0];
}

当我写[0] ,它返回十六进制版本,但仅返回第一个数字。 因此,如果十六进制值为14那么我只会得到1 没有这个[]规范,它是一个std::string ,但是我需要使用char形式的完整十六进制。

我当时正在考虑制作一个for循环,以一个循环替换0,以使其遍历前i字符,但是我认为没有办法将常规字符( char )附加在一起。 我该怎么办? 谢谢!

编辑:明确地说,我想以这个过程为例:声明一个char变量char h ,然后将整数104转换为十六进制,即0x68 ,然后将0x68分配给char类型的变量h

===============>>#1 票数:1

一个角色只能容纳...一个角色。 对于十六进制数字,0-F将是一个字符。 当您有一个字符数组(多个字符)时,就有一个字符串。 您怎么可能将十进制数255(十六进制FF)表示为单个字符?

===============>>#2 票数:1

char只能代表一个字符。 如果您需要整个字符串,则最好的办法是返回通过调用a.str()创建的std::string

如果您需要返回一个C样式的字符串,则需要返回一个char * (或char const * ),该字符指向字符的存储位置,在这一点上,您需要管理其生存期( std::string为您做)。

  ask by Archie Gertsman translate from so

未解决问题?本站智能推荐:

2回复

将Char指针中的十六进制转换为十进制

我有一个C ++应用程序,该应用程序具有许多由不同应用程序调用的API。 C ++应用程序的功能之一是, 我试过的 也试过了 再也不是将每一位数字一位一位地转换为十进制。 那么我该怎么做才能将这种包含十六进制的char指针转换为十进制呢?
1回复

将void *十六进制转换为十进制整数

您好,我需要您的帮助将void *(十六进制数字)转换为十进制数字。 我在代码中使用了sqlite3,回调函数给了我一个&data,其中包含行数。 问题是:我需要将&data(十六进制数字)保存为int。 也许有另一种方法可以执行此操作,但是我尝试将&data十六进制转换为十进制int,问
1回复

C ++程序将十进制转换为十六进制

我编写了一个程序,使用对字母的切换命令将十进制字符串转换为十六进制,但是如果使用char,该程序将无法正常运行! 没有切换,我将无法处理高于9的数字。我希望您能理解我,因为我的语言不太好。 所以这是我的程序 顺便说一句,如果将它设置为int而不是char它可以正常工作,但是它变成1
3回复

将十进制转换为十六进制C ++

我有这段代码,但它似乎只打印十六进制转换的最后4个字符。 输入 :3219668508 输出 :3e1c 预期输出:bfe83e1c 救命?
1回复

十进制转换为十六进制-反转十六进制值

我需要用一个int调用byteSwap(),然后将其转换为十六进制并反转十六进制。 例如 byteSwap(2030)或7ee(十六进制)应返回ee7。 该程序还执行其他一些操作,我想使用reverse()在byteSwap()中进行反转。 我尝试在byteSwap()中使用几个不同的循
1回复

在C ++中将输出从十六进制转换为十进制

我试图找到数组元素的内存地址,但是输出结果却是十六进制的。 如果您能告诉我如何将其转换为小数输出,我将不胜感激。 这是代码,
3回复

在C ++中将十进制转换为十六进制的混乱

我没有大量的编码经验,并且希望能对我在此程序中做错的事情有所了解! 这是正在传达的错误:从'char'到'const char *'的无效转换[-fpermissive]
1回复

从十进制基数转换为十六进制基数c ++

我要从大于10(11到16)的基数转换。 此代码只能转换为2-9的基数。 我如何转换说10的299 = 16的12B,15的14E,13的1A0 ......同样。 我的代码应该在哪里/如何放置? 先感谢您。
2回复

如何在C ++ JNI中将十进制转换为十六进制

目前使用代码将十进制转换为C#中的十六进制: 请帮助移植到C ++ Jni。 谢谢
3回复

C ++:如何将十六进制的HANDLE转换为十进制?

在c ++中,我从另一个函数获取了HANDLE类型ID,该函数似乎是十六进制的,我想将其转换为十进制。 但是第二行给出了这个错误: 这是我第一次遇到HANDLE类型。 有人可以帮助和解释吗? 谢谢。 更新: 我正在使用Windows XP和Visual Studi