Java中十六进制与十进制之间互相转换

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

提示:这里可以添加本文要记录的大概内容:

Java中的十进制与十六进制转换,刷题的时候遇到了这样的问题,因此记录一下

提示:以下是本篇文章正文内容,下面案例可供参考

一、十进制转十六进制,用到的方法为toHexString()

话不多说,直接上代码
如将十进制数字 108 转换为十六进制
代码示例如下:

public static void main(String [] args) {
        Scanner input  = new Scanner(System.in);
        while(input.hasNextInt()){
            Integer a = input.nextInt();
            System.out.println("数字"+a+"的十六进制为:"+a.toHexString(a));
        }

    }

运行结果:

108
数字:108的十六进制为:6c
666
数字:666的十六进制为:29a

这样将一个十进制数字转换为无符号的十六进制便完成了,若要显示“0x”符号,可在结果进行拼接,代码示例如下

public static void main(String [] args) {
        Scanner input  = new Scanner(System.in);
        while(input.hasNextInt()){
            Integer a = input.nextInt();
            System.out.println("数字"+a+"的十六进制为:"+"0x"+a.toHexString(a));
        }

    }

注意:这里在使用toHexString()函数将十进制转换为十进制时,接受的输入参数a为Integer类型,倘若用int类型接收,则无法使用方法toHexString()

二、十六进制转为十进制,用到的方法为parseInt()

在十六进制转换为十进制的时候,接收到的输入参数可能会出现两种情况,一种是带有“0x”符号的,一种是没有符号的,因此需要做出判断

代码示例如下:

public static void main (String [] args){
        Scanner input  = new Scanner(System.in);
        while (input.hasNextLine()){
            String str = input.nextLine();
            if(str.substring(0,2).equals("0x")){
                System.out.println("有符号十六进制数:"+str+"转为十进制的值为:"+Integer.parseInt(str.substring(2),16));
            }else {
                System.out.println("无符号十六进制数:"+str+"转为十进制的值为:"+Integer.parseInt(str,16));
            }

        }
    }

运行结果:

29a
无符号十六进制数:29a转为十进制的值为:666
0x6c
有符号十六进制数:0x6c转为十进制的值为:108


总结

以上就是Java中十六进制和十进制之间相互转换的一个一个方法,十进制转十六进制的时候,用的函数为toHexString(待转换的十进制数字),十六进制转十进制的时候用的函数为parseInt(待转换的字符串,进制表示),

  • 3
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值