Basic10 基础练习 十进制转十六进制
题目如下:
这里也分成了算法实现和直接掉java方法的实现,算法这里没啥好说的,要注意输入为0时的情况,第一次没考虑到 ,改成do while 0也能进循环了。
这里也可以明确的知其他进制数转10进制和10进制转其他进制数的方式都是类似的
直接调用java的方法有时候是很简单的,但也有可能不符合题意。
package basic;
import java.util.Scanner;
/**
* @Description: 基础练习 十进制转十六进制
* @ClassName: Basic10
* @author: fan.yang
* @date: 2020/07/12 15:33
*/
public class Basic10 {
/**
* 算法实现 类似十进制转二进制 从余2 除2变成余16 除16即可
*/
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int dec = scanner.nextInt();
StringBuffer sb = new StringBuffer();
do{
int num = dec % 16;
if(num >= 10){
sb.append((char)(num - 10 + 'A'));
}else{
sb.append(num);
}
dec /= 16;
}while(dec > 0);
System.out.println(sb.reverse());
}
/**
* 调用java方法实现 注意toHexString得到的a b c d e f都是小写的 题目是要大写的
*/
/*public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int dec = scanner.nextInt();
System.out.println(Integer.toHexString(dec).toUpperCase());
}*/
}