java format 二进制_Java中输出二进制,八进制,十六进制

在Java中,数字输出时,默认采用十进制输出。如果想要输出二进制,八进制和十六进制,需要一些特殊的方法。本文总结了一部分可以实现的方法如下:

1. 使用Integer.toXXXString()

说明:

二进制 Integer.toBinaryString()

八进制 Integer.toOctalString()

十六进制 Integer.toHexString()

代码示例:

int num1 = 25;

// 十进制输出(默认)

System.out.println("在十进制中,num1 = " + num1);

// 二进制输出

System.out.println("在二进制中,num1 = " + Integer.toBinaryString(num1));

// 八进制输出

System.out.println("在八进制中,num1 = " + Integer.toOctalString(num1));

// 十六进制输出

System.out.println("在十六进制中,num1 = " + Integer.toHexString(num1));

输出结果:

在十进制中,num1 = 25

在二进制中,num1 = 11001

在八进制中,num1 = 31

在十六进制中,num1 = 19

2. 使用DecimalFormat,输出固定长度的二进制,八进制和十六进制

说明:

你可能已经发现,使用Integer.toXXXString()输出的二进制,八进制和十六进制结果中,前面的0默认是不显示的,但是有的时候,我们可能需要输出固定长度的结果,例如00011001而非11001,怎样在结果的前方自动补齐呢?

可以使用DecimalFormat这个类来实现。

把上面的代码示例修改一下:

代码示例:

int num1 = 25;

// 输出固定长度为8的结果

DecimalFormat df = new DecimalFormat("00000000");

// 十进制输出(默认)

System.out.println("在十进制中,num1 = " + df.format(num1));

// 二进制输出

String num1InBinaryStr = Integer.toBinaryString(num1);

Integer num1InBinaryInt = Integer.valueOf(num1InBinaryStr);

System.out.println("在二进制中,num1 = " + df.format(num1InBinaryInt));

// 八进制输出

String num1InOctalStr = Integer.toOctalString(num1);

Integer num1InOctalInt = Integer.valueOf(num1InOctalStr);

System.out.println("在八进制中,num1 = " + df.format(num1InOctalInt));

// 十六进制输出

String num1InHexStr = Integer.toHexString(num1);

Integer num1InHexInt = Integer.valueOf(num1InHexStr);

System.out.println("在十六进制中,num1 = " + df.format(num1InHexInt));

输出结果:

在十进制中,num1 = 00000025

在二进制中,num1 = 00011001

在八进制中,num1 = 00000031

在十六进制中,num1 = 00000019

3. 使用printf()输出固定长度的八进制和十六进制

说明:

还有一种方法,可以输出固定长度的八进制和十六进制结果,就是printf(),但是这个方法不能输出二进制。

代码示例:

int num1 = 25;

// 十进制输出(默认)

System.out.printf("在十进制中,num1 = %08d\n", num1);

// 八进制输出

System.out.printf("在八进制中,num1 = %08o\n", num1);

// 十六进制输出

System.out.printf("在十六进制中,num1 = %08x\n", num1);

输出结果:

在十进制中,num1 = 00000025

在八进制中,num1 = 00000031

在十六进制中,num1 = 00000019

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值