文字列から 16 進数に変換する方法について、オンラインでたくさんのチュートリアルがあることを知っています。さて、私はそれについて問題を抱えています。
私のコード (以下を参照) は最大 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;
}