您的位置:首页 > 编程语言 > Java开发

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

2015-01-28 21:49 246 查看
  最近在刷蓝桥杯练习系统的题,在基础练习那碰到了有关进制转换的三道题,由于对二、八、十、十六进制之间是如何转换并不大熟悉,做题时也费了不少劲百度谷歌的,然后默默地发现,原来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)参数表示的无符号整数值的字符串表示形式。


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

public static String toOctalString(int i)

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


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


01234567


它们是从
'\u0030'
'\u0037'
的字符。
参数:
i
- 要转换成字符串的整数。

返回:用八进制参数(基数 8)表示的无符号整数值的字符串表示形式。


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

public static Integer valueOf(String s,intradix)
throws NumberFormatException

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

new Integer(Integer.parseInt(s,radix))

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




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

public static String toHexString(int i)

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


0123456789abcdef


这些字符的范围是从
'\u0030'
'\u0039'
和从
'\u0061'
'\u0066'


如果希望得到大写字母,可以在结果上调用
String.toUpperCase()
方法:

Integer.toHexString(n).toUpperCase()





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

  //二进制转十进制
  Integer.valueOf("0110",2).toString();
  //二进制转八进制
  Integer.toOctalString(Integer.parseInt("0110", 2));
  //二进制转十六进制
  Integer.toHexString(Integer.parseInt("0110", 2));

[b]  //八进制转成十进制
  Integer.valueOf("72",8).toString();
  //八进制转成二进制
  Integer.toBinaryString(Integer.valueOf("46",8));
  //八进制转成十六进制
  Integer.toHexString(Integer.valueOf("46",8));[/b]

  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));


                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐