我知道网上有很多关于如何从字符串转换为十六进制的教程。好吧,我有一个问题。
我的代码(见下文)最多可使用 31 个字符,我终其一生都无法弄清楚原因。每当有 32 个字符时,它最多只能达到 7fffffff。
我需要能够输入类似“111111111100000000001010101000”的内容
应该是一个简单的修复只是不确定在哪里
我的尝试(可编译):
#include <iostream>
#include <string>
#include <sstream>
using namespace std;
int main()
{
int Base = 2;
long x;
char InputString[40];
char *pEnd = NULL; // Required for strtol()
cout << "Number? ";
cin >> InputString;
x = strtol(InputString, &pEnd, Base); // String to long
cout << hex << x << endl;
return 4;
}