Java —— 进制转换

【进制】

  1. 二进制:0、1,满 2 进 1,0b 或 0B 开头
  2. 八进制:0-7,满 8 进 1,0 开头
  3. 十进制:0-9,满 10 进 1
  4. 十六进制:0-9 及 A-F(不区分大小写),满 16 进 1,0x 或 0X 开头

【原码、反码、补码】

  1. 所有数字在计算机底层均以二进制形式存储
  2. 进制的基本转换,是以二进制为桥梁的,任意两进制互转,都需先转为二进制
  3. 原码:直接将一根数值转换为二进制数
  4. 反码:除符号位外,对原码按位取反
  5. 对于正数,原码、反码、补码,三码合一
  6. 对于负数,其补码是反码加1

【任意进制互转框架】

import java.util.*;
public class Main {
	public static void main(String args[]) {
		Scanner input = new Scanner(System.in);
		while(input.hasNext()) {
			int n=input.nextInt();
			System.out.println("转换前的进制:"+n);
			int m=input.nextInt();
			System.out.println("转换后的进制:"+m);
			String str=input.next();
			System.out.print("要转换的数:"+str);
			
			int a=Integer.valueOf(str,n);
			String res=Integer.toString(a,m).toUpperCase();
			System.out.println("结果:"+res);
		}
	}
}

【十进制转其他进制】

十进制转二、八、十六进制,可以通过包装类中的方法来转换

int num=10,res;
res=Integer.toBinaryString(num);//转2进制
res=Integer.toOctalString(num);//转8进制
res=Integer.toHexString(num);//转16进制

【其他进制转十进制】

当需要其他进制转十进制时,常通过包装类中的 valueOf() 方法(返回值为对象)与 parseInt() 方法(返回值为整数)来进行转换

关于包装类:点击这里

int a;
a=Integer.valueOf("FFFF",16).toString();
a=Integer.valueOf("17",8).toString();
a=Integer.valueOf("0101",2).toString();
a=Integer.parseInt("FFFF",16);
a=Integer.parseInt("17",8);
a=Integer.parseInt("0101",2);

注:对于二进制、八进制和十六进制之间的转换,可先转换为十进制,在用十进制转多进制的相应方法进行转换 

猜你喜欢

转载自blog.csdn.net/qq_41204918/article/details/90046283
今日推荐