私はテキストファイルを読み込み、各文字の数値のASCII値を見つけて16進数に変換して画面に出力するC++プログラムを作成していますが、16進数'C'で終わる値が現れます。ここで ASCIIを16進数に変換すると、ランダムな改行が表示されるのはなぜですか?
は、私が16進数に変換するために使用していたコードです:std::string HexConvert(char character) {
char HEX[] = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F' };
int ASCII = (int) character;
if (ASCII > 255 || ASCII < 32) {
return "20";
} else {
std::vector<char> binaryVec = binaryConvert(ASCII);
std::string binaryVal(binaryVec.begin(), binaryVec.end());
binaryVal = binaryVal.substr(binaryVal.length() - 8, 8);
std::string bin1 = binaryVal.substr(0, 4);
std::string bin2 = binaryVal.substr(4, 4);
int hex1 = ((bin1[0] - 48)*8) + ((bin1[1] - 48)*4) + ((bin1[2] - 48)*2) + ((bin1[3] - 48)*1);
int hex2 = ((bin2[0] - 48)*8) + ((bin2[1] - 48)*4) + ((bin2[2] - 48)*2) + ((bin2[3] - 48)*1);
char hexVal[2] = { HEX[hex1], HEX[hex2] };
std::string hexValue(hexVal);
return hexValue;
}
}
テキストの画像を投稿しないでください。 –