| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 800 人关注过本帖
标题:二进制转十进制使用FOR循环来实现------------------>大家请进
只看楼主 加入收藏
gameohyes
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:湖南
等 级:版主
威 望:53
帖 子:1275
专家分:3629
注 册:2009-3-5
结帖率:96.43%
收藏
已结贴  问题点数:20 回复次数:3 
二进制转十进制使用FOR循环来实现------------------>大家请进
我的思路是这样的。我要怎么样才能达到这个转换的目的呢?具体怎么去写代码呢?
public class ToBin {
    public static void main(String[] args){
        Scanner input=new Scanner(System.in);
        System.out.println("欢迎进入二进制转十进制系统\n请输入一个数:");
        int num=input.nextInt();
        int x;
        int[] ten=new int[100];
        int[] two=new int[100];
        for(x=0;x<100;x++){
            ten[x]=num%10;
            num=num/10;
            if(num<1){
                break;
            }
            x+=(int)(Math.pow(2, ten[x]));
        }
      
        System.out.println(x);
  }
}

[ 本帖最后由 gameohyes 于 2009-9-1 19:47 编辑 ]
搜索更多相关主题的帖子: 二进制 FOR 十进制 
2009-09-01 18:37
freish
Rank: 6Rank: 6
等 级:贵宾
威 望:23
帖 子:1223
专家分:437
注 册:2007-6-1
收藏
得分:20 
可以直接用Integer.parseInt("1010010",2);来实现

[url=http://shop63425653./]/cvbnm/a6/1d/f4/7dd1720119cf3b1dcfb570b467b24051.jpg" border="0" />[/url]
2009-09-01 20:19
freish
Rank: 6Rank: 6
等 级:贵宾
威 望:23
帖 子:1223
专家分:437
注 册:2007-6-1
收藏
得分:0 
程序代码:
这是它的源码
    public static int parseInt(String s, int radix)
  throws NumberFormatException
    {
        if (s == null) {
            throw new NumberFormatException("null");
        }
 if (radix < Character.MIN_RADIX) {
     throw new NumberFormatException("radix " + radix +
         " less than Character.MIN_RADIX");
 }
 if (radix > Character.MAX_RADIX) {
     throw new NumberFormatException("radix " + radix +
         " greater than Character.MAX_RADIX");
 }
 int result = 0;
 boolean negative = false;
 int i = 0, max = s.length();
 int limit;
 int multmin;
 int digit;
 if (max > 0) {
     if (s.charAt(0) == '-') {
  negative = true;
  limit = Integer.MIN_VALUE;
  i++;
     } else {
  limit = -Integer.MAX_VALUE;
     }
     multmin = limit / radix;
     if (i < max) {
  digit = Character.digit(s.charAt(i++),radix);
  if (digit < 0) {
      throw NumberFormatException.forInputString(s);
  } else {
      result = -digit;
  }
     }
     while (i < max) {
  // Accumulating negatively avoids surprises near MAX_VALUE
  digit = Character.digit(s.charAt(i++),radix);
  if (digit < 0) {
      throw NumberFormatException.forInputString(s);
  }
  if (result < multmin) {
      throw NumberFormatException.forInputString(s);
  }
  result *= radix;
  if (result < limit + digit) {
      throw NumberFormatException.forInputString(s);
  }
  result -= digit;
     }
 } else {
     throw NumberFormatException.forInputString(s);
 }
 if (negative) {
     if (i > 1) {
  return result;
     } else { /* Only got "-" */
  throw NumberFormatException.forInputString(s);
     }
 } else {
     return -result;
 }
    }bccn_1251807533254976217543706

[url=http://shop63425653./]/cvbnm/a6/1d/f4/7dd1720119cf3b1dcfb570b467b24051.jpg" border="0" />[/url]
2009-09-01 20:20
gameohyes
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:湖南
等 级:版主
威 望:53
帖 子:1275
专家分:3629
注 册:2009-3-5
收藏
得分:0 
如果这样子写呢?  该怎么去修改:
    public static void main(String[] args){
        String[] num1=new String[100];
        int x,y,z=0;
        Scanner input=new Scanner(System.in);
        System.out.println("欢迎进入二进制转十进制系统\n请输入一个数:");
        int num=input.nextInt();
         int[] ten=new int[100];
        int[] two=new int[100];
        for(x=0;x<100;x++){
            ten[x]=num%10;
            num=num/10;
            if(num<1){
                break;
            }
            
        }
        num1[x]=String.valueOf(ten[x]);
        for(y=x;y>=0;y++){
            z+=(int)(Math.pow(2, num1.length()-1));
            System.out.println(z);
        }

C#超级群 74862681,欢迎大家的到来!
2009-09-01 20:22
快速回复:二进制转十进制使用FOR循环来实现------------------>大家请进
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.063920 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved