java中进行二进制,八进制,十六进制,十进制间进行相互转换
2016-03-30 10:28
751 查看
十进制转成十六进制:
Integer.toHexString(int i)
十进制转成八进制
Integer.toOctalString(int i)
十进制转成二进制
Integer.toBinaryString(int i)
十六进制转成十进制
Integer.valueOf("FFFF",16).toString()
八进制转成十进制
Integer.valueOf("876",8).toString()
二进制转十进制
Integer.valueOf("0101",2).toString()
有什么方法可以直接将2,8,16进制直接转换为10进制的吗?
java.lang.Integer类
parseInt(String s, int radix)
使用第二个参数指定的基数,将字符串参数解析为有符号的整数。
examples from jdk:
parseInt("0", 10) returns 0
parseInt("473", 10) returns 473
parseInt("-0", 10) returns 0
parseInt("-FF", 16) returns -255
parseInt("1100110", 2) returns 102
parseInt("2147483647", 10) returns 2147483647
parseInt("-2147483648", 10) returns -2147483648
parseInt("2147483648", 10) throws a NumberFormatException
parseInt("99",
throws
a NumberFormatException
parseInt("Kona", 10) throws a NumberFormatException
parseInt("Kona", 27) returns 411787
进制转换如何写(二,八,十六)不用算法
Integer.toBinaryString
Integer.toOctalString
Integer.toHexString
例二
public class Test{
public static void main(String args[]){
int i=100;
String binStr=Integer.toBinaryString(i);
String otcStr=Integer.toOctalString(i);
String hexStr=Integer.toHexString(i);
System.out.println(binStr);
}
例二
public class TestStringFormat {
public static void main(String[] args) {
if (args.length == 0) {
System.out.println("usage: java TestStringFormat <a number>");
System.exit(0);
}
Integer factor = Integer.valueOf(args[0]);
String s;
s = String.format("%d", factor);
System.out.println(s);
s = String.format("%x", factor);
System.out.println(s);
s = String.format("%o", factor);
System.out.println(s);
}
}
其他方法:
Integer.toHexString(你的10进制数);
例如
String temp = Integer.toHexString(75);
输出temp就为 4b
//输入一个10进制数字并把它转换成16进制
import java.io.*;
public class toHex{
public static void main(String[]args){
int input;//存放输入数据
//创建输入字符串的实例
BufferedReader strin=new BufferedReader(new InputStreamReader(System.in));
System.out.println("请输入一个的整数:");
String x=null;
try{
x=strin.readLine();
}catch(IOException ex){
ex.printStackTrace();
}
input=Integer.parseInt(x);
System.out.println ("你输入的数字是:"+input);//输出从键盘接收到的数字
System.out.println ("它的16进制是:"+Integer.toHexString(input));//用toHexString把10进制转换成16进制
}
}
/**
* 十进制整数 转换为 任何进制的数
*
* @param decimValue
* @param radix 表示基数
* @return
*/
public static String decimalTo(int decimValue, int radix)
{
StringBuffer target = new StringBuffer();
int digit = dealer(decimValue, radix);
for (int i = digit; i > 0; i--)
{
int j = getDigPosition(decimValue, radix, i - 1);
target.append(j);
decimValue -= Math.pow(radix, i - 1) * j;
}
return target.toString();
}
/**
* 获得指定数位上的值
*
* @param decimValue
* @param radix
* @param pow+1 表示第pow+1位上的值
* @return
*/
public static int getDigPosition(int decimValue, int radix, int pow)
{
int i = 0;
while (true)
{
if (Math.pow(radix, pow) * i > decimValue)
{
break;
}
i++;
}
return i - 1;
}
/**
* 获得转换后的位数
* 到底有多少个数位。
* @param value
* @param radix
* @return
*/
public static int dealer(int value, int radix)
{
int i = 1;
while (true)
{
double power = Math.pow(radix, i);
if (power > value)
{
return i;
}
i++;
}
}
public static void main(String[] args)
{
System.out.println(Integer.valueOf("2200",
.toString());
System.out.println(decimalTo(1152,
);
}
Integer.toHexString(int i)
十进制转成八进制
Integer.toOctalString(int i)
十进制转成二进制
Integer.toBinaryString(int i)
十六进制转成十进制
Integer.valueOf("FFFF",16).toString()
八进制转成十进制
Integer.valueOf("876",8).toString()
二进制转十进制
Integer.valueOf("0101",2).toString()
有什么方法可以直接将2,8,16进制直接转换为10进制的吗?
java.lang.Integer类
parseInt(String s, int radix)
使用第二个参数指定的基数,将字符串参数解析为有符号的整数。
examples from jdk:
parseInt("0", 10) returns 0
parseInt("473", 10) returns 473
parseInt("-0", 10) returns 0
parseInt("-FF", 16) returns -255
parseInt("1100110", 2) returns 102
parseInt("2147483647", 10) returns 2147483647
parseInt("-2147483648", 10) returns -2147483648
parseInt("2147483648", 10) throws a NumberFormatException
parseInt("99",
throws
a NumberFormatException
parseInt("Kona", 10) throws a NumberFormatException
parseInt("Kona", 27) returns 411787
进制转换如何写(二,八,十六)不用算法
Integer.toBinaryString
Integer.toOctalString
Integer.toHexString
例二
public class Test{
public static void main(String args[]){
int i=100;
String binStr=Integer.toBinaryString(i);
String otcStr=Integer.toOctalString(i);
String hexStr=Integer.toHexString(i);
System.out.println(binStr);
}
例二
public class TestStringFormat {
public static void main(String[] args) {
if (args.length == 0) {
System.out.println("usage: java TestStringFormat <a number>");
System.exit(0);
}
Integer factor = Integer.valueOf(args[0]);
String s;
s = String.format("%d", factor);
System.out.println(s);
s = String.format("%x", factor);
System.out.println(s);
s = String.format("%o", factor);
System.out.println(s);
}
}
其他方法:
Integer.toHexString(你的10进制数);
例如
String temp = Integer.toHexString(75);
输出temp就为 4b
//输入一个10进制数字并把它转换成16进制
import java.io.*;
public class toHex{
public static void main(String[]args){
int input;//存放输入数据
//创建输入字符串的实例
BufferedReader strin=new BufferedReader(new InputStreamReader(System.in));
System.out.println("请输入一个的整数:");
String x=null;
try{
x=strin.readLine();
}catch(IOException ex){
ex.printStackTrace();
}
input=Integer.parseInt(x);
System.out.println ("你输入的数字是:"+input);//输出从键盘接收到的数字
System.out.println ("它的16进制是:"+Integer.toHexString(input));//用toHexString把10进制转换成16进制
}
}
/**
* 十进制整数 转换为 任何进制的数
*
* @param decimValue
* @param radix 表示基数
* @return
*/
public static String decimalTo(int decimValue, int radix)
{
StringBuffer target = new StringBuffer();
int digit = dealer(decimValue, radix);
for (int i = digit; i > 0; i--)
{
int j = getDigPosition(decimValue, radix, i - 1);
target.append(j);
decimValue -= Math.pow(radix, i - 1) * j;
}
return target.toString();
}
/**
* 获得指定数位上的值
*
* @param decimValue
* @param radix
* @param pow+1 表示第pow+1位上的值
* @return
*/
public static int getDigPosition(int decimValue, int radix, int pow)
{
int i = 0;
while (true)
{
if (Math.pow(radix, pow) * i > decimValue)
{
break;
}
i++;
}
return i - 1;
}
/**
* 获得转换后的位数
* 到底有多少个数位。
* @param value
* @param radix
* @return
*/
public static int dealer(int value, int radix)
{
int i = 1;
while (true)
{
double power = Math.pow(radix, i);
if (power > value)
{
return i;
}
i++;
}
}
public static void main(String[] args)
{
System.out.println(Integer.valueOf("2200",
.toString());
System.out.println(decimalTo(1152,
);
}
相关文章推荐
- Eclipse 一直Building Workspace 的解决办法
- 深入理解JVM(一)-Java运行时数据区域
- Java CopyOnWriteArray
- java反射例子详解
- [Java] Java中List 去掉重复的值,并保持原先List顺序
- java项目debug 的时候总是跳转threadpoolexecutor
- Java中的注解是如何工作的?
- java实现格雷码生成
- Spring注解@Component、@Repository、@Service、@Controller区别
- Spring 注释 @Autowired 和@Resource 的区别
- Unable to associate project with a runtime server in eclipse IDE
- SpringMVC小结
- MyEclipse Professional 2014与MyEclipse 2015共存
- Eclipse4/RCP 模型化的UI
- Spring源代码解析(收藏)
- Spring+Jersey+JPA+Hibernate+MySQL实现CRUD操作案例
- Eclipse4/RCP 架构概况
- commons-dbutils使用介绍
- Java:单例模式的七种写法
- JavaWeb常见问题总结及解决(待更新)