java 16进制与10进制互相转换以及如何手动算

16进制与10进制详解

        在十进制系统中,我们使用基数为10的数,即0到9。而在十六进制系统中,基数为16,使用的数字是0到9和字母A到F,其中A代表10,B代表11,C代表12,D代表13,E代表14,F代表15。十六进制是一种表示数字的进位制方法,十六进制通常用于计算机中数据的表示,如内存地址等。

手动算16进制

  1. 除以16并获取余数:

    • 首先,将十进制数除以16。
    • 将得到的余数记录下来。如果余数大于9,使用相应的字母(例如,10用A表示,11用B表示,依此类推)。
  2. 获取商:

    • 然后,取除法的整数商。
  3. 重复以上步骤:

    • 对得到的商重复进行除以16并获取余数的步骤,直到商为0。
  4. 组合余数:

    • 最后,将所有余数倒序排列,这就是最终的十六进制数。
示例

将十进制数 287 转换为十六进制数:

  1. 287 ÷ 16 = 17 余 15,十六进制中15用F表示。
  2. 17 ÷ 16 = 1 余 1。
  3. 1 ÷ 16 = 0 余 1。

将余数倒序排列(1, 1, F),所以十进制数287对应的十六进制数为 11F

10进制转16进制

Integer x = 666;
String hex = x.toHexString(x);
System.out.println(hex);

打印出来的信息是“29a”,需要注意这里转换完的hex是字符串,值是16进制的一个数;

16进制转10进制

分为两种情况一般我们遇到都是第一种

1)1A

2)0xfff; 

第一种好办,直接如下:

public class HexToDecimal {
    public static void main(String[] args) {
        String hexString = "1A"; // 这是一个16进制的数字
        int decimal = Integer.parseInt(hexString, 16);
        System.out.println("The number " + hexString + " in decimal is: " + decimal);
    }
}

在这个例子中,"1A"是一个16进制的数字,Integer.parseInt(hexString, 16)会将其转换为10进制的整数。第二个参数16指定了基数为16,即告诉parseInt方法输入的字符串是16进制的。运行上述程序,会输出:

The number 1A in decimal is: 26

因为16进制的1A等于10进制的26

第二种呢,用上述方法就行不通了,因为会将“x”当做16进制的数进行转换,0xfff是一种在许多编程语言中包括Java表示十六进制数的标准格式。这里的 0x 前缀表示随后的字符是十六进制数字。fff 在十六进制中是个有效的数值,显然”0x”不属于16进制里的表示。所以得想个办法判断字符串是否有0x,把前面的“0x”去掉。然后在执行上述方法

String hex = "0xfff";
Integer x = Integer.parseInt(hex.substring(2),16);//从第2个字符开始截取
System.out.println(x);

------------------------------------------与正文内容无关------------------------------------
如果觉的文章写对各位读者老爷们有帮助的话,麻烦点赞加关注呗!作者在这拜谢了!

混口饭吃了!如果你需要Java 、Python毕设、商务合作、技术交流、就业指导、技术支持度过试用期。请在关注私信我,本人看到一定马上回复!

  • 16
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

A乐神

恭喜发财啊,老板,嘻嘻!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值