相关疑难解决方法(0)

C++将十六进制字符串转换为有符号整数

我想在C++中将十六进制字符串转换为32位有符号整数.

因此,例如,我有十六进制字符串"fffefffe".二进制表示形式为11111111111111101111111111111110.有符号整数表示形式为:-65538.

如何在C++中进行此转换?这也需要适用于非负数.例如,十六进制字符串"0000000A",二进制为00000000000000000000000000001010,十进制为10.

c++ hex signed integer

127
推荐指数
7
解决办法
31万
查看次数

在C ++中将带有前导“ 0x”的十六进制字符串转换为带符号的缩写?

我找到了将十六进制字符串转换为signed intusing 的代码strtol,但找不到短整数(2个字节)的内容。这是我的代码:

while (!sCurrentFile.eof() )
{
    getline (sCurrentFile,currentString);
    sOutputFile<<strtol(currentString.c_str(),NULL,16)<<endl;
}
Run Code Online (Sandbox Code Playgroud)

我的想法是读取一个具有2个字节宽的值的文件(如0xFFEE),将其转换为带符号的int并将结果写入输出文件中。执行速度不是问题。

我可以找到一些避免该问题的方法,但是我想使用“单行”解决方案,所以也许您可以为此提供帮助:)

编辑:文件看起来像这样:

while (!sCurrentFile.eof() )
{
    getline (sCurrentFile,currentString);
    sOutputFile<<strtol(currentString.c_str(),NULL,16)<<endl;
}
Run Code Online (Sandbox Code Playgroud)

编辑:我已经尝试了十六进制运算符,但这样做之前我仍然必须将字符串转换为整数。

// This won't work as currentString is not an integer
myInt << std::hex << currentString.c_str(); 
Run Code Online (Sandbox Code Playgroud)

c++ string int hex short

2
推荐指数
1
解决办法
5259
查看次数

标签 统计

c++ ×2

hex ×2

int ×1

integer ×1

short ×1

signed ×1

string ×1