《写给大忙人看的Java核心技术》第一章练习

1.写个程序,它读取一个整数,并以二级制、八进制、十六进制输出。以十六进制浮点数输出倒数。

十进制转二进制和转八进制类似,所以就给出转二进制方法。在Java中十进制转二进制有三种方法。

第一种 除基倒取余法

这是最符合我们平时的数学逻辑思维的,即输入一个十进制数n,每次用n除以2,把余数记下来,再用商去除以2...依次循环,直到商为0结束,把余数倒着依次排列,就构成了转换后的二进制数。

public void binaryToDecimal(int n){
     String str = "";
     while(n!=0){
         str = n%2+str;
         n = n/2;
     }
         System.out.println(str);
}

第二种:利用“移位”操作实现

public void binaryToDecimal(int n){
      for(int i = 31;i >= 0; i--)
          System.out.print(n >>> i & 1);
}


第三种:调用API函数

public void function1(int n){
     String result = Integer.toBinaryString(n);
     System.out.println(result);
 }

Java中十进制转16进制其实和十进制转二进制差不多,只是因为十六进制包含字母所以略微有些差异。

public static void binaryToDecimal(int n){
		String str = "";
		while(0!=n){
			if(n%16<10){
				str = n%16+str;
			}else{
				switch (n%16) {
				case 10:
					str = "A"+str;
					break;
				case 11:
					str = "B"+str;
					break;
				case 12:
					str = "C"+str;
					break;
				case 13:
					str = "D"+str;
					break;
				case 14:
					str = "E"+str;
					break;
				case 15:
					str = "F"+str;
					break;
				}
			}
			n = n/16;
		}
		System.out.println(str);
	}

 





你可能感兴趣的:(Java)