首先了解十进制转化成二级制的原理
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