Я пытаюсь закодировать программу, которая будет конвертировать восьмеричную в двоичную, а затем шестнадцатеричную, но проблема в том, что я получаю неправильный ответ. Код на самом деле преобразования выглядит следующим образом:Octal конвертирует в шестнадцатеричный неправильно
user_input=user_input.replace("0", "00");
user_input=user_input.replace("1", "01");
user_input=user_input.replace("2", "10");
user_input=user_input.replace("3", "11");
user_input=user_input.replace("4", "100");
user_input=user_input.replace("5", "101");
user_input=user_input.replace("6", "110");
user_input=user_input.replace("7", "111");
if (!(user_input.length()-1 % 4 ==0)){
user_input = "00" + user_input; }
user_input=user_input.replace("0000", "0");
user_input=user_input.replace("0001", "1");
user_input=user_input.replace("0010", "2");
user_input=user_input.replace("0011", "3");
user_input=user_input.replace("0100", "4");
user_input=user_input.replace("0101", "5");
user_input=user_input.replace("0110", "6");
user_input=user_input.replace("0111", "7");
user_input=user_input.replace("1000", "8");
user_input=user_input.replace("1001", "9");
user_input=user_input.replace("1010", "A");
user_input=user_input.replace("1011", "B");
user_input=user_input.replace("1100", "C");
user_input=user_input.replace("1101", "D");
user_input=user_input.replace("1110", "E");
user_input=user_input.replace("1111", "F");
Мой ключ использует номер 1057, который должен преобразовать в 22F, но я получаю выход 12F
Любая идея о том, что я делаю неправильно?
Почему вы не печатаете промежуточные результаты и не сравниваете их с тем, что вы ожидаете? –
Вы иногда конвертируете восьмеричный ввод в двузначную двоичную строку, иногда в трехзначную двоичную строку. Думаю, это может быть связано. –
Также во второй части могут быть «нежелательные» замены. –