java十进制转换为二进制、八进制和十六进制

/*
* 十进制--->二进制
*/
public static void toBin1(int num){
trans(num, 1, 1);
}
/*
* 十进制--->八进制
*/
public static void toBa(int num){
trans(num, 7, 3);
}
/*
* 十进制--->十六进制
*/
public static void toHex1(int num){
trans(num, 15, 4);

}

//将转换为二进制和十六进制相同的部分进行封装,将其不一样的地方作为参数

public static void trans(int num,int base,int offset){
char[] ch={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
char[] arr=new char[32];
int pos=arr.length;
while(num!=0){
int temp=num&base;
arr[--pos]=ch[temp];
num=num>>offset;
}
for(int x=pos;x>arr.length;++x){
System.out.println(arr[x]);
}

}

//转换为二进制

public  static void toBin(int num){
//定义二进制的表
char[] chs={'0','1'};
//定义一个临时存储容器
char[] arr=new char[32];
//定义一个操作数组的指针
int pos=arr.length;
while(num!=0){
int temp=num&1;
arr[--pos]=chs[temp];
num=num>>1;
}
for(int i=pos;i<arr.length;++i){
System.out.println(arr[i]+",");
}

}

//转换为十六进制

       public static void toHex(int num){
      /*
       * 查表法:将所有的元素临时存储起来,建立对应关系。
       * 每一次&15后的值作为索引去查建立好的表,就可以找对应的元素。
       * 这样比num-10+‘a’简单的多
       */
      //十进制转换为十六进制,通用适用于负数
      char[] ch={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
      //定义一个临时容器,一个int只有32位,对应的十六进制就是八位
      char[] ch1=new char[8];
      int pos=ch1.length;
      while(num!=0){
      int temp=num &15;
      ch1[--pos]=ch[temp];
      num=num>>4;
      }
      for(int i=pos;i<ch1.length;++i){
      System.out.println(ch1[i]+",");
      }
       }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值