0
我一直想編寫一個程序,將一個八進制轉換爲二進制,然後十六進制,但問題是,我得到錯誤的答案。對於實際轉換的代碼如下:八進制轉換爲十六進制錯誤
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
輸出約我在做什麼任何想法錯誤?
你爲什麼不打印中間結果,並將它們與你所期望的比較? –
有時你八輸入轉換爲2位二進制字符串,有時一個3位二進制字符串。我想這可能是相關的。 –
也有可能在第二部分「無用」的替代品。 –