`
hedahai119
  • 浏览: 104703 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

2进制和10进制的相互转化

阅读更多
 1.  十进制数到二进制数的转化(递归算法)

  public static String getBinaryStr(int decimal) {
    if (decimal <= 1) {
      return String.valueOf(decimal);
    } else {
      return getBinaryStr(decimal / 2)+String.valueOf(decimal % 2);
    }
  }
 2. 十进制数到二进制数的转化(非递归算法)
  public static int getBinary(int decimal) {
    int binary = 0;
    int grade = 0;

    while (decimal > 0) {
      binary += (decimal % 2) * getTenPower(grade);

      decimal /= 2;
      grade++;
    }

    return binary;
  }

  public static int getTenPower(int n) {
    int multi = 1;
    for (int i = 0; i < n; i++) {
      multi *= 10;
    }

    return multi;
  }
3.二进制到十进制的转化(递归)

 public static int getDecimal(int binary) {
    if (binary < 2) {
      return binary;
    } else {
      return 2 * getDecimal(binary / 10) + binary % 10;
    }
  }
4.二进制到十进制的转化(非递归)

 public static int getDecimal(int bin) {
    int dec = 0;
    int grade = 0;

    while (bin > 0) {
      dec += (bin % 10) * getTwoPower(grade);

      bin /= 10;
      grade++;
    }

    return dec;
  }

  public static int getTwoPower(int n) {
    int multi = 1;
    for (int i = 0; i < n; i++) {
      multi *= 2;
    }

    return multi;
  }
5.二进制到十进制的转化(调用工具类)

public static int getDecimal(int bin) {
    String str = String.ValueOf(bin);

    int Decimal = Integer.pastInt(str,2);

    return Decimal;
}

0
0
分享到:
评论
1 楼 liushooter 2011-07-25  
最近有个笔试题 有一个7进制数 转换成 10进制 不让用冥 不让用Math类 头很大
表示鸭梨很大

相关推荐

Global site tag (gtag.js) - Google Analytics