Java初学笔记——23. Case16_十六进制转换成单个字符

package 控制流程;
//需求:现在我们要处理任何整数如:2345,要将其转换为16进制表示法的字符串并输出
//已知:十进制123被转换为十六进制数7B。这个转换过程如下:将123除以16,余数为11(十六进制的B),商为7.继续讲7除以16,余数为7,商为0.因此,7B就是123的十六进制数

import java.util.Scanner;

public class Case16_十六进制转换成单个字符 {

	//已知:
	//0~9的十六进制表示和十进制一样
	//10~15的十六进制表示为A、B、C、D、E、F
	//需求:
	//提示用户输入0~15中的一个数,用程序将其转换为十六进制表示法的单个字符并输出
	//限制:
	//用户只能输入0~15
	public static void main(String[] args) {

		//定一个特殊场景,然后算出结果
		//需要将:15-->F      (char)15?    (char)69='F'
		System.out.println("请输入一个十进制数,我们将把它变成十六进制形式");
		Scanner in = new Scanner(System.in);
		int number = in.nextInt();       //
		
		//这些变量,每次循环都会改变他们,每次循环也要利用上次循环之后这些变量的值
		//这样的变量就应该放在循环之外来声明
		String hex = "";
		int shang=number;
		int yu;
		
		while(shang != 0) {
		yu = shang % 16;         //余
		shang = shang / 16;      //商
		
		//-----余数转char  begin-----
		char result;
		
		if(yu > 9) {
			result = (char) ('A' + (yu - 10));
		}else {
			result = (char) ('0' + (yu - 0));
		}
		
		//-----余数转char  end-----
		
		hex = result + hex;          //hex:B

		}
		System.out.println("十六进制形式为:" + hex);
}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值