java十进制转二进制简单算法

  • Post author:
  • Post category:java




Java十进制转二进制简单算法



一、编程思路

可以运用简单的数学的计算的方法。如下

在这里插入图片描述

这张图大家应该都不陌生,10(例子中的10)一直除以2,余数写在右面那一列,如果被整除右面写0,如果没有别整除,写他的余数,这样反反复复的除以2。除到除不了了为止,最后把余数倒着写出来,这就是高中老师教给我们的进制转换算法

所以从这个例子可以看出的条件:

1.需要我们(用户)从键盘获取一个十进制的数(用到Scanner扫描器)

2.需要一直除以二(用到循环while或for)。

3.我们最后的结果只要余数,所以你们会想到%号,可是大家别忘了,除完的结果还要继续除,所以还要用到/号。

4.他的结果也很特别需要倒着输出。(用到数组来储存,然后在倒着输出)。



二、导入Scanner

在这里插入图片描述



三、代码

代码如下:

	Scanner sc=new Scanner(System.in);//创建一个扫描器对象
	int a;//创建一个变量a
	int b[] = new int[32];//创建一个容量为32的一个数组;
	int count = 0;//创建一个数组计数器
	System.out.println("请输入一个十进制数:");//提示用户操作
	a = sc.nextInt();//把扫描器输入的十进制值赋给a
	while (a > 0) {
	//因为上面我们说了二进制需要我们倒着写,所以干脆就把第一个余数存到数组最后一位
		b[31 - count] = a % 2;
		//上面算的是余数,a/=2是为了算下次a的值
		a /= 2;
		count++;//数组计数器
	}
	System.out.print("转换二进制为:")
	for (int i = 0; i < b.length; i++) {
		System.out.print(b[i]);//因为上面是倒着输入了,所以我们只需要用for正在输出就行了
		if ((i + 1) % 8 == 0) {
			System.out.print("|");//为了美观创建一个分界线
		}
		}

结果:

在这里插入图片描述

#结论


1.需要注意光用一个/或%都是不行的,并且在这个代码的循环语句里的逻辑必须是先算取余,再算除,否则就会落下第一余数。

2.我刚采用的是倒着把余数往数组里输入,正着输出结果,当然也可以正着输入余数,倒着输出结果。



版权声明:本文为weixin_55300558原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。