在java的进制转换中,java自带的有相关的方法,二进制转换为十进制,只需要使用Inteager.valueOf(s,a),其中,s代表的是需要转换的二进制数,后面的a代表我们当前数的进制。比如我们要转换的数是二进制,则a为2.
但是,我们今天要写的是不使用这种自带的方法,来实现二进制到十进制的转换:
首先我们需要一个变量来存储我们的被转换数,其次,我们要使用的是一个变量来存储最终的输出结果,然后,是我们用一个数来实现位权 的变化,实现1.2.4.8.16.32.。。。。。。在这种转换的时候,他的循环条件是我们的被转换数不为0,在这个循环体内,用y来自增。对被转换数进行取余操作,然后乘上我们的权。然后更新被转换数,同时将权再乘以二,表示将权往前推一位:
具体程序可以看下面:public class CoreJava02 {
/**
* 用x存储要转换的二进制数,y是用来接受最终的结果
*
*/
public static void main(String[] args) {
int x = 1001001, y = 0;
// 二进制转换为十进制
int t = 1;
while (x > 0) {
y += x % 10 * t;
x = x / 10;
t = t * 2;
}
System.out.print("输出的十进制数是:" + y);
}
}
这里面,我们被转换数是x,存储结果是y,t是权位
当输入的数不为0的时候,进行循环,循环体里面,y实现自增,更新x,以及更新t;