java8进制转换_JAVA之 二、八、十、十六进制之间的转换

最近在刷蓝桥杯练习系统的题,在基础练习那碰到了有关进制转换的三道题,由于对二、八、十、十六进制之间是如何转换并不大熟悉,做题时也费了不少劲百度谷歌的,然后默默地发现,原来Java的Integer类里面就封装了现成的方法,下面总结一下这些方法,给自己留个印象:

在JDK API中我们可以在Integer类下查到:

toBinaryString(八、十、十六进制转换成二进制的方法)

public static String toBinaryString(int i)

以二进制(基数 2)无符号整数形式返回一个整数参数的字符串表示形式。

如果参数为负,该无符号整数值为参数加上 232;否则等于该参数。将该值转换为二进制(基数 2)形式的无前导 0 的 ASCII 数字字符串。如果无符号数的大小为零,则用一个零字符 '0' (’\u0030’) 表示它;否则,无符号数大小的表示形式中的第一个字符将不是零字符。字符 '0' ('\u0030') 和 '1' ('\u0031') 被用作二进制数字。

参数:i - 要转换为字符串的整数。返回:用二进制(基数 2)参数表示的无符号整数值的字符串表示形式。6a1ceb4e0afa36f25b908e4edbb3aa5c.png

toOctalString(从二、十、十六进制转换成八进制的方法)

public static String toOctalString(int i)

以八进制(基数 8)无符号整数形式返回一个整数参数的字符串表示形式。

如果参数为负,该无符号整数值为参数加上 232;否则等于该参数。该值被转换成八进制(基数 8)ASCII 数字的字符串,且没有附加前导 0。

如果无符号数大小为零,则用一个零字符 '0' ('\u0030') 表示它;否则,无符号数大小的表示形式中的第一个字符将不是零字符。用以下字符作为八进制数字:

01234567

它们是从 '\u0030' 到 '\u0037' 的字符。

参数:i - 要转换成字符串的整数。返回:用八进制参数(基数 8)表示的无符号整数值的字符串表示形式。f8c1e226fca4d22ff3bfa351e5a24ee8.png

valueOf(二、八、十六进制转换成十进制的方法)

public static Integer valueOf(String s,int radix)

throws NumberFormatException

返回一个 Integer 对象,该对象中保存了用第二个参数提供的基数进行解析时从指定的 String 中提取的值。将第一个参数解释为用第二个参数指定的基数表示的有符号整数,就好像将这些参数赋予 parseInt(java.lang.String, int) 方法一样。结果是一个表示字符串指定的整数值的 Integer 对象。

换句话说,该方法返回一个等于以下值的 Integer 对象:

new Integer(Integer.parseInt(s, radix))参数:s - 要解析的字符串。radix - 解释 s 时使用的基数。返回:一个 Integer 对象,它含有字符串参数(以指定的基数)所表示的数值。抛出:String 不包含可解析的 int。

ea87edd8cec53178b1804f3e608f29be.png

toHexString(从二、八、十进制转换成十六进制的方法)

public static String toHexString(int i)

以十六进制(基数 16)无符号整数形式返回一个整数参数的字符串表示形式。

如果参数为负,那么无符号整数值为参数加上 232;否则等于该参数。将该值转换为十六进制(基数 16)的无前导 0 的 ASCII 数字字符串。如果无符号数的大小值为零,则用一个零字符 '0' (’\u0030’) 表示它;否则,无符号数大小的表示形式中的第一个字符将不是零字符。用以下字符作为十六进制数字:

0123456789abcdef这些字符的范围是从 '\u0030' 到 '\u0039' 和从 '\u0061' 到 '\u0066'。cc2f9bd8fd77d359dd2ecc76900f6cad.png如果希望得到大写字母,可以在结果上调用 String.toUpperCase() 方法:Integer.toHexString(n).toUpperCase()

ff675f90729469a877b283955c9b2eb3.png参数:i - 要转换成字符串的整数。返回:参数的十六进制(基数 16)无符号整数值的字符串表示形式。

转换实例:

//二进制转十进制

Integer.valueOf("0110",2).toString();

//二进制转八进制

Integer.toOctalString(Integer.parseInt("0110", 2));

//二进制转十六进制

Integer.toHexString(Integer.parseInt("0110", 2));

//八进制转成十进制

Integer.valueOf("72",8).toString();

//八进制转成二进制

Integer.toBinaryString(Integer.valueOf("46",8));

//八进制转成十六进制

Integer.toHexString(Integer.valueOf("46",8));

int n = 13;

//十进制转成十六进制:

Integer.toHexString(n);

//十进制转成八进制

Integer.toOctalString(n);

//十进制转成二进制

Integer.toBinaryString(n);

//十六进制转成十进制

Integer.valueOf("FFFF",16).toString();

//十六进制转成二进制

Integer.toBinaryString(Integer.valueOf("FFFF",16));

//十六进制转成八进制

Integer.toOctalString(Integer.valueOf("FFFF",16));

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值