- class ArrayChangeSystem2{
- /*
- 转化函数:
- */
- public static void trans(int num,int base,int offset)
- {
- char[] check={'0','1','2','3','4','5','6','7','8','9',
- 'A','B','C','D','E','F'};
- char[] arr=new char[32];
- int count=arr.length;//存放角标
- if(num==0)
- arr[count-1]=check[0];
- while(num!=0)
- {
- int temp=num & base;
- arr[--count]=check[temp];
- num=num >>> offset;
- }
- Swap(count,arr);
- }
- /*
- Swap()函数打印数组
- */
- public static void Swap(int count,char[] arr)
- {
- for(int i=count;i<arr.length;i++)
- {
- System.out.print(arr[i]);//只有i与上面对应,才可以打印出所有数
- }
- System.out.println();
- }
- /*
- 十进制转化为八进制
- */
- public static void toOctal(int num)
- {
- trans(num,7,3);
- }
- /*
- 十进制转化为二进制
- */
- public static void toBin2(int num)
- {
- trans(num,1,1);
- }
- /*
- 十六进制转化为二进制
- */
- public static void toHex2(int num)
- {
- trans(num,15,4);
- }
- public static void main(String[] args)
- {
- toBin2(4);
- toHex2(32);
- toOctal(60);
- }
- }
复制代码 适用于所有进制转化,适用于负数
|
|