目录

一、进制基础_进制转换

10进制:是逢10进1 的计数规则

2进制:是逢2进1 的计数规则

8进制:是逢8进1 的计数规则

16进制:是逢16进1 的计数规则

10进制对应2进制

2进制-->10进制

10进制-->2进制

16进制-->10进制

10进制-->16进制

二、进制转换_java api 代码示例***


一、进制基础_进制转换

 数学:计数的规律

10进制:是逢10进1 的计数规则

 权:10000 1000 100 10 1   每个数位上代表1的个数

 基数:10  进位规律

 数字:0 1 2 3 4 5 6 7 8 9

 权是基数的n次幂

2进制:是逢2进1 的计数规则

 权:128 64 32 16 8 4 2 1 每个数位上代表1的个数

 基数:2  进位规律

 数字:0 1

 权是基数的n次幂

8进制:是逢8进1 的计数规则

 权:4096 512 64 8 1 每个数位上代表1的个数

 基数:16  进位规律

 数字:0  1  2  3  4  5  6  7 

 权是基数的n次幂

16进制:是逢16进1 的计数规则

 权:256 16 1 每个数位上代表1的个数

 基数:16  进位规律

 数字:0 1 2 3 4 5 6 7 8 9 a b c d e f 

 权是基数的n次幂

  

10进制对应2进制

0     0
  1     1
  2    10
  3    11
  4   100
  5   101
  6   110
  7   111
  8  1000
  9  1001
 10  1010
 11  1011
 12  1100
 13  1101
 14  1110
 15  1111

2进制-->10进制

************************************************************ 
 11000000(2) = ?(10) 
  256 128 64 32 16  8  4  2  1
    0     1    1   0   0   0  0  0  0
11000000(2) = 128 + 64 = 192(10) 
 11000101(2) = ?(10)
  256 128 64 32 16  8  4  2  1
     0    1    1   0   0   0  1  0  1
11000101(2) = 128 + 64 + 4+1 = 197(10)

快速手动计算-总结:

步骤1、列出 2的次方

步骤2、二进制数对应上 2的次方

步骤3、二进制数为1的, 2的次方,进行相加

 ************************************************************ 

10进制-->2进制

 ************************************************************ 

234(10) = ?(2) = 11101010(2) 
                 128  64  32 16  8  4  2  1
 234(10) =    1     1   1    0  1  0  1  0 (2)
                  106  42  10       2      0
234(10)  = 11101010(2) 
201(10)= ?(2)
                 128  64  32 16  8  4  2  1
 201(10)=     1    1    0   0   1  0  0  1
                   73    9              1          0
201(10)= 11001001(2)

快速手动计算-总结:

步骤1、列出 2的次方

步骤2、十进制数依次减去 2的次方,减去大于0的计为1,小于等于0的计为0

************************************************************

             

16进制-->10进制

************************************************************            

             

256      16        1
    141(16) = 1*256 + 4*16 + 1*1 = 321(10)

快速手动计算-总结:

步骤1、列出 16的次方

步骤2、16进制数,对应相乘,累加即可

************************************************************

    

10进制-->16进制

************************************************************
                     256   16     1
   321(10) =     1      4      1 = 141(16)
                      65      1      0

快速手动计算-总结:

步骤1、列出 16的次方

步骤2、依次相除

java掩码进制转换_servlet

************************************************************ 

二、进制转换_java api 代码示例***

java掩码进制转换_servlet_02

我们用 java代码来验证,如上 10进制转换2进制 等是否正确:

package t04_进制转换;


public class BaseConversionTest {
	public static void main(String[] args) {
		BaseConversionTest baseConversionTest = new BaseConversionTest();
		
		baseConversionTest.java10to2();
//		baseConversionTest.java2to10();
//		baseConversionTest.java10to16();
//		baseConversionTest.java16to10();
//		baseConversionTest.java10to8();
//		baseConversionTest.java8to10();
		
	}
	
	
	/**
	 * 10进制转2进制
	 * 
	 * Java会将10进制"234" 转化为 2进制赋值到 i 的内存中。
	 * 在计算机内部,只有2进制数据
	 * 
	 * toBinaryString(int i): 把10进制转化为2进制的方法
	 */
	private void java10to2(){
		
		int i=234;
		String str3 = Integer.toBinaryString(i);
		System.out.println("str3--->"+str3); //11101010
		
		i = 6;
		String str1 = Integer.toBinaryString(i);
		System.out.println("str1--->"+str1); //110
		
		i =8;
		String str2 = Integer.toBinaryString(i);
		System.out.println("str2--->"+str2); //1000
		
		
		System.out.println(Integer.toBinaryString(201));//11001001  
		System.out.println(Integer.toBinaryString(-10));//11111111111111111111111111110110  
		System.out.println(Integer.toBinaryString(-9)); //11111111111111111111111111110111  
		System.out.println(Integer.toBinaryString(-8)); //11111111111111111111111111111000  
		System.out.println(Integer.toBinaryString(-1)); //11111111111111111111111111111111  
		System.out.println(Integer.toBinaryString(0));//0  
		System.out.println(Integer.toBinaryString(1));//1  
		System.out.println(Integer.toBinaryString(10));//1010
		
		i = -1;//在内存中 -1 是32个1, 是补码!
		System.out.println(Integer.toBinaryString(i));//11111111111111111111111111111111
		
	}
	
	
	/**
	 * 2进制转10进制
	 */
	private void java2to10(){
		String str = Integer.valueOf("110",2).toString();//6
		System.out.println(str);
	}
	
	
	/**
	 * 10进制转成16进制
	 * Integer.toHexString(int i)
	 */
	private void java10to16(){
		String str = Integer.toHexString(321);//141
		System.out.println(str);
	}
	
	
	/**
	 * 16进制转成10进制
	 */
	private void java16to10(){
		String str = Integer.valueOf("141",16).toString();//321
		System.out.println(str);
	}
	
	
	/**
	 * 10进制转成8进制
	 * Integer.toOctalString(int i)
	 */
	private void java10to8(){
		String str = Integer.toOctalString(10);//12
		System.out.println(str);
	}
	
	
	/**
	 * 8进制转成10进制
	 */
	private void java8to10(){
		String str = Integer.valueOf("12",8).toString();//10
		System.out.println(str);
	}
	
	
}

java掩码进制转换_jvm_03