Java查表法实现十进制转化成其它进制

首先了解十进制转化成二级制的原理

156的二进制为:
156 % 2 = 78 …… 0
83 % 2 = 39 …… 0
39 % 2 = 19 …… 1
19 % 2 = 9 …… 1
9 % 2 = 4 …… 1
4 % 2 = 2 …… 0
2 % 2 = 1 …… 0
1 % 2 = 0 …… 1 从下到上看即为 10011100

100111000转八进制实际上就是
00-000-000-000-000-000-000-000-010-011-100
倒数第一组数110 的十进制即:4
倒数第二组数011 的十进制即:3
倒数第三组数010 的十进制即:2 从下到上看即为 234

156的八进制为234

理十六进制的数
0000-0000 0000-0000 0000-0000 1001-1100
倒数第一组数1100的十进制为:12即C
倒数第二组数1001的十进制为:9 9C

在这里插入图片描述
倒数第一组数可以看成和1111“与”运算后得出1100,的十进制为12 即为C

然后右移四位

在这里插入图片描述
倒数第二组数可以看成和1001“与”原酸后得出1001,的十进制即9

即在代码中定义一个函数实现

public static void change(int num,int base,int move)
	{
		if(num==0)//如果是零输出零,结束
		{
			System.out.println(0);
			return;
		}
		char[] tables ={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
		char[] bottle =new char [32];
		int position =bottle.length;//定义一个局部变量,从数组后面开始存放数据
		while (num!=0)
		{
			int temp =num & base;
			bottle[--position] = tables[temp];
			num = num >>> move;
		}
		for(int x=position;x<bottle.length;x++)
		{
			System.out.print(bottle[x]);
		}
		System.out.println();
	}

在这里插入图片描述
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/guixinchn/article/details/107511646