移位当然是移到没数可移为止了,即左边全是0了。
根据要求写了个代码,其实不管是求8进制还是16进制等,原理都一样,
当然还可以用查表法。这里我没用,只写了8进制的,代码如下:
- /*
- 需求:十进制转换成八进制的代码。
- 思路:
- 1,与7
- 2,将与7后得到的数,用数组倒序存储下来
- 3,移位
- 4,正向打印数组
- */
- class Test
- {
- public static void main(String[] args)
- {
- toBa(1000);
- }
- public static void toBa(int in)
- {
- /*
- 定义一个数组,长度为11(应该能存下了,
- 因为一个整数默认int类型,32位,八进制每3位代表一位)
- */
- int [] i = new int[11];
- int pos=i.length;//定义指针,从i.length-1即最后一个角标开始存储
- while (in!=0)//直到移位成0的时候停止循环
- {
- i[--pos] = in&7;
- in = in>>>3;
- }
- for (int x=pos; x<i.length; x++)
- {
- System.out.print(i[x]);
- }
- }
- }
- /*
- 0000 0000 0001 1001
- 0000 0000 0000 0111
- */
复制代码 |