java – 十进制转换错误
发布时间:2020-12-15 05:09:51 所属栏目:Java 来源:网络整理
导读:我正在编写一个程序,将八进制数转换为小数.它编译正确和一切,但我的转换代码有一些重大错误.对我来说这似乎是完全合乎逻辑的,但不管怎样,当我运行程序转换错误时(即1转换为36),有人可以指出出错了吗? public static int convert(int octal){ int d1=0,d2=0,
我正在编写一个程序,将八进制数转换为小数.它编译正确和一切,但我的转换代码有一些重大错误.对我来说这似乎是完全合乎逻辑的,但不管怎样,当我运行程序转换错误时(即1转换为36),有人可以指出出错了吗?
public static int convert(int octal) { int d1=0,d2=0,d3=0,d4=0,d5=0,d6=0,d7=0,d8=0; if(octal >=9999999){ d8 = (octal-(octal%10000000));} if(octal >=999999){ d7 = (octal-(octal%1000000));} if(octal >=99999){ d6 = (octal-(octal%100000));} if(octal >=9999){ d5 = (octal-(octal%10000));} if(octal >= 999){ d4 = (octal-(octal%1000));} if(octal >= 99){ d3 = (octal-(octal%100));} if(octal >= 9){ d2 = (octal-(octal%10));} if(octal >= 0){ d1 = (octal-(octal%1));} octal = (d8 * 8^7) + (d7 * 8^6) + (d6 * 8^5) + (d5 * 8^4) + (d4 * 8^3) + (d3 * 8^2) + (d2 * 8^1) + (d1 * 8^0); return octal; } 这只是我的转换方法,我的主要方法是收集的 解决方法
这就是问题:
8^7
但是,我会说整个设计显然是可疑的. int值不是“in”八进制或任何其他基数 – 它只是一个整数.数字10是数字10,无论是十进制的“10”,十六进制的“A”还是八进制的“12”.如果您有一个要解析为八进制数字的字符序列,则该方法的输入应为String,而不是int. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |