700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > java 二进制转十进制的算法_java中十进制数转换二进制数

java 二进制转十进制的算法_java中十进制数转换二进制数

时间:2020-12-16 01:11:30

相关推荐

java 二进制转十进制的算法_java中十进制数转换二进制数

将十进制转换成二进制的算法如下:

1.给定一个数;

2.根据十进制转换二进制的思想:把这个数除以2若为单数则为1,为偶数则为0,直到最后一个数为1为止。所以我们要做的就是用你给定的这个数除以2,如果结果为奇数则r=1,否则r=0;如此循环下去,直到这个数〉=1。

3.然后把r的值送到一个数组里面。最后把这个数组里面的内容从后面打印出来就可以了。

import java.util.Scanner;

public class ZhuanHuan {

public static void main(String[] args){

System.out.println("请输入一个十进制数:");

Scanner reader = new Scanner(System.in);

int n=0;

int i=0;

int r=0;

n=reader.nextInt();

int[] a =new int[10];

do{

if(n%2==1){

r=1;

}

else {

r=0;

}

a[i]=r;

n=n/2;

i++;

}

while(n>0);

System.out.println("转化成的二进制是:");

for (int j = i-1; j>=0; j--) {

System.out.print(a[j]);

}

}

}

十进制整数转换为二进制整数采用"除2取余,逆序排列"法

具体做法是:用2整除十进制整数,可以得到一个商和余数,再用2去除商,又会得到一个商和余数,如此进行,直到商为0时为止,然后把先得到的余数作为二

制数的低位有效位,后得到的余数作为二进制数的高位有效位,依次排列起来。

对于数值n,二进制最后一位=n%2;计算得到的结果是最后要输出的结果,使用递归函数,联系递归的特点:在递归语句之前计算n%2,在递归调用语句之后

输出结果,这样先计算的结果反而在最后输出。

import java.util.Scanner;

public class ChangeTo2 {

/**

* @param args

*/

public static void main(String[] args) {

// TODO Auto-generated method stub

System.out.println("请输入一个整型的十进制数:");

Scanner reader = new Scanner(System.in);

int num = 0;

num = reader.nextInt();

System.out.print("转换后的二进制数为:");

toBinary(num);

}

//递归函数

static void toBinary( int num){

int r;

r = num%2;//最后一位要输出的,即使参数=1,还是要计算到这里结束,只取出余数就ok了。然后顺次返回上一级主调函数,继续执行剩下的……

//如果商 1 / 2 = 0,计算就可以终止了,不需要再算

if(num>=2){

//精华,联系10进制转2进制的算法,每次除以2,取出余数,然后用新的商继续除以2,取出新余数……直到商为0,余数逆序输出即可

toBinary(num/2);//把新的商作为参数递归调用

}

//在递归语句之后输出,这样就是倒叙输出

System.out.print(r);

}

}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。