进制问题大全---算法版

/*公式自己总结吧,很简单了
* java进制转换代码实例(算法实现)
* 2、8、10、16两两转换
*     二进制: 0-1
*     八进制: 0-7
*     十进制: 0-9
*     十六进制:0-9 a-f(A表示10,而F表示15) (十六进制一般以ox或Ox开头)
*
*
*/
public class SuanFa {

public static void main(String[] args) {
   int shi = 120;
  
   new SuanFa().ershi();
   new SuanFa().bashi();
   new SuanFa().liushi();
  
   new SuanFa().shier(shi);
   new SuanFa().shiba(shi);
   new SuanFa().shiliu(shi);
}

public void ershi(){
   int er = 1100100; // 二进制数1100100转化成十进制
   double f01 = 0 * Math.pow(2,0);
   double f02 = 0 * Math.pow(2,1);
   double f03 = 1 * Math.pow(2,2);
   double f04 = 0 * Math.pow(2,3);
   double f05 = 0 * Math.pow(2,4);
   double f06 = 1 * Math.pow(2,5);
   double f07 = 1 * Math.pow(2,6);
   double fz = f01 + f02 + f03 + f04 + f05 + f06 + f07;
   System.out.println("算法:" + "二进制数" + er + "转化成十进制数为" + fz);
}

public void bashi(){
   int ba = 1507; // 八进制数1507转化成十进制
   double f01 = 7 * Math.pow(8,0);
   double f02 = 0 * Math.pow(8,1);
   double f03 = 5 * Math.pow(8,2);
   double f04 = 1 * Math.pow(8,3);
   double fz = f01 + f02 + f03 + f04;
   System.out.println("算法:" + "八进制数" + ba + "   转化成十进制数为" + fz);
}

public void liushi(){
   String liu = "2AF5";   // 八进制数2AF5转化成十进制
   double f01 = 5 * Math.pow(16,0);
   double f02 = 15 * Math.pow(16,1);
   double f03 = 10 * Math.pow(16,2);
   double f04 = 2 * Math.pow(16,3);
   double fz = f01 + f02 + f03 + f04;
   System.out.println("算法:" + "十六进制数" + liu + " 转化成十进制数为" + fz);
}

// 十进制数120转化成二进制
public void shier(int shi){
   int f01 = shi / 2;
   int f02 = f01 / 2;
   int f03 = f02 / 2;
   int f04 = f03 / 2;
   int f05 = f04 / 2;
   int f06 = f05 / 2;
   int f07 = f06 / 2; // f0_为0才终止
   int s01 = shi % 2;
   int s02 = f01 % 2;
   int s03 = f02 % 2;
   int s04 = f03 % 2;
   int s05 = f04 % 2;
   int s06 = f05 % 2;
   int s07 = f06 % 2;
   String str01 = String.valueOf(s01);
   String str02 = String.valueOf(s02);
   String str03 = String.valueOf(s03);
   String str04 = String.valueOf(s04);
   String str05 = String.valueOf(s05);
   String str06 = String.valueOf(s06);
   String str07 = String.valueOf(s07);
   String sz = str07 + str06 + str05 + str04 + str03 + str02 + str01;
   //int isz = Integer.parseInt(sz);
   System.out.println("算法:" + "十进制数" + shi + "转化成二进制数为" + sz);
}

// 十进制数120转化成八进制
public void shiba(int shi){
   int f01 = shi / 8;
   int f02 = f01 / 8;
   int f03 = f02 / 8; // f0_为0才终止
   int s01 = shi % 8;
   int s02 = f01 % 8;
   int s03 = f02 % 8;
   String str01 = String.valueOf(s01);
   String str02 = String.valueOf(s02);
   String str03 = String.valueOf(s03);
   String sz = str03 + str02 + str01;
   //int isz = Integer.parseInt(sz);
   System.out.println("算法:" + "十进制数" + shi + "转化成八进制数为" + sz);
}

// 十进制数120转化成十六进制
public void shiliu(int shi){
   int f01 = shi / 16;
   int f03 = f01 / 16; // f0_为0才终止
   int s01 = shi % 16;
   int s02 = f01 % 16;
   String str01 = String.valueOf(s01);
   String str02 = String.valueOf(s02);
   String sz = str02 + str01;
   //int isz = Integer.parseInt(sz);
   System.out.println("算法:" + "十进制数" + shi + "转化成十六进制数为" + sz);
}
}

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值