Написание программы для преобразования закодированной ANSI строки в двоичную. И мое значение ANSI равно È.битовый эквивалент для unsigned int
Вот как я это делаю:
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
является целым типом, так что я получаю значение в -56 и при нахождении его двоичного с помощью bitset
я получаю 00110011 (который является неправильным двоичным значением для символа È). Вместо этого я должен получить значение как 11001000 (правильный двоичный код для È). Я понимаю, что если тип ascii
будет unsigned int
, тогда я получу правильный двоичный вывод. Однако bitset
не принимает unsigned int
тип; следовательно, существует ли какой-либо эквивалент bitset
, который принимал бы unsighed int
? ИЛИ есть ли другой способ сделать это двоичное преобразование?
У вас возникла проблема с смешиванием подписанных значений 'int' и значений без знака. Это должно было быть очевидно, но я думаю, нет. – PaulMcKenzie
Каков тип ввода? и как вы его заполняете? Я думаю, это важно здесь. – Rama
Какой набор символов вы используете, ASCII или ANSI? Набор символов ASCII не содержит È. –