ANSI符号化文字列をバイナリに変換するプログラムを記述する。私のANSI値はÈです。ここで符号なし整数のbitset相当値
は、私がこれをやっている方法です:
int ascii; //used to store ASCII number of a character
int length = strlen(input);
char letter = NULL;
for(int x=0;x<length;x++) //repeat until the input is read
{
ascii = input[x];
bitset<8> binary(ascii);
}
しかし、ascii
がint型でように、私は-56として値を取得していますし、bitset
を使用して、そのバイナリを見つけたとき、私は00110011を(取得しています文字Èの間違ったバイナリ値です)。代わりに私は11001000(Èの正しいバイナリ)として値を取得する必要があります。タイプがunsigned int
の場合は、正しいバイナリ出力が得られることを理解しています。ただし、bitset
はunsigned int
タイプを受け付けていません。したがって、unsighed int
を受け入れるbitset
と同等のものがありますか?または、このバイナリ変換を行う他の方法はありますか?
署名付きの「int」値と符号なし値を混在させることに問題があります。それは明らかだったはずですが、私はそうは思わないでしょう。 – PaulMcKenzie
入力のタイプは何ですか?どのようにそれを埋めるのですか?私はそれがここで重要だと思う。 – Rama
ASCIIまたはANSIを使用している文字セットは何ですか? ASCII文字セットにはÈが含まれていません。 –