Java 十进制转换十六进制

本文记录小编遇到的一种10进制转换为16进制的一种算法。

因为小编能力有限,所以只能做出来0到255之间的十进制数转换为十六进制数。

class HexaDecimal
{
	public static void main(String[] args)
	{
		int i1=60;//初始值为60,下文中60均代表i1
		int i2=i1&15;//与4个1相与,得到的结果是60的二进制数的最低四位,其余位数全部舍掉
		/*
			String j=“”;//因为定义的是字符串类型,所以在下方都在最后加了一个“”,以将其转换为字符串类型。
			三元表达表达式:
			IF(i2>9)  //此时i2的结果是60的低四位二进制数字
			{//如果i2大于9,就相当于用ABCDEF中的字母来代表
				//用i2-10再加上‘A'的ASCII,再将其转换为一个字符。
				//例如:如果i2是14,则14-10+'A'的ASCII=4+65(A的ASCII)=69,
				//再将69转换为字符,正好得到的是字符'E',E在十六进制中正好是14
				j=(char)(i2-10+'A')+"";
			}
			ELSE
			{//如果i2不大于9,就是小于等于9
				j=i2+"";//则直接将数字赋值给j
			}
			
		*/
		String j=(i2>9)?(char)(i2-10+'A') + "":i2+ "";//如果感觉三元表达式比较复杂,则可以看上方的注释代码。
		//将i1向右移四位,这样就把刚才计算的四位舍掉,在继续上述的操作。
		//因为下方的部分都已经重复,这里小编就不在解释第二遍。
		int temp=i1>>>4;
		i2=temp&15;
		String k=(i2>9)?(char)(i2-10+'A')+"" : i2+"";
		System.out.println(k+""+j);
	}
}

这只是小编偶然间遇到的,如果有错误或者理解不正确的地方,还望您指出。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 13
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值