帮我看下这个程序错误?

caoliang3621 2009-09-03 04:41:54
自己写了一个二进制转十进制的,能运行,但是有的二进制转换出来的不正确,帮我看下哪里逻辑错误了,谢谢啊,新手

String number;
int num;
int n = 0,count = 0,m;
number = JOptionPane.showInputDialog("Enter numbers");
num = Integer.parseInt(number);

while(n<100000){

m = (int) (num/Math.pow(10, n)%10*Math.pow(2, n));
count = count + m;
n++;
}
JOptionPane.showMessageDialog(null, count,"",JOptionPane.INFORMATION_MESSAGE);
...全文
77 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
yanliang_xt 2009-09-03
  • 打赏
  • 举报
回复
嗯,是没问题。。。
caoliang3621 2009-09-03
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 yanliang_xt 的回复:]
引用 1 楼 caoliang3621 的回复:
不好意思,知道错误了
numLength = number.length();
while(n <numLength)



你这如果这个字符串以0开始就会出现问题。不信你试试

[/Quote]


String number;
long num,numLength;
long n = 0,count = 0,m;
number = JOptionPane.showInputDialog("Enter numbers");
num = Long.parseLong(number);
numLength = number.length();

while(n<numLength){

m = (long) (num/Math.pow(10, n)%10*Math.pow(2, n));
count = count + m;
n++;
}
JOptionPane.showMessageDialog(null, count,"",JOptionPane.INFORMATION_MESSAGE);
System.exit(0);


好像没问题,不过还是谢谢了,受教了,又多学了一种方法
yanliang_xt 2009-09-03
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 caoliang3621 的回复:]
不好意思,知道错误了
numLength = number.length();
while(n <numLength)

[/Quote]

你这如果这个字符串以0开始就会出现问题。不信你试试
yanliang_xt 2009-09-03
  • 打赏
  • 举报
回复

String number;
int num;
int count = 0;
number = JOptionPane.showInputDialog("Enter numbers");
num = Integer.parseInt(number);
int j = String.valueOf(num).length();

while(i > 0) {
int n = num / (int)(Math.pow(10,j - 1));
count = n *(int)(Math.pow(2,j-1)) + count;
num = num - (int)(Math.pow(10,j - 1));
j--;
}
JOptionPane.showMessageDialog(null, count,"",JOptionPane.INFORMATION_MESSAGE);
xian_hf 2009-09-03
  • 打赏
  • 举报
回复
自食其力,顶
caoliang3621 2009-09-03
  • 打赏
  • 举报
回复
不好意思,知道错误了
numLength = number.length();
while(n<numLength)

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧