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位二进制字符串。我想这可能是相关的。 –
也有可能在第二部分“无用”的替代品。 –