进制的转换
import java.util.Scanner;
public class example {
public static void main(String[] args) {
int a=0b1010;
int b=1010;
int c=01010;
int d=0x10101;System.out.println(a+"\n"+b+"\n"+c+"\n"+d);
}
}
其它进制转十进制
二进制转十进制
规则:从最低位(右边)开始,把每个位上的数提取出来,乘上2的(位数-1)次方,后求和。
例如:0b1011(二进制)=(个位)1*2^(1-1)+1*2^(2-1)+0*2^(3-1)+1*2(4-1)=11(十进制)
八进制转十进制
规则:从最低位(右边)开始,把每个位上的数提取出来,乘上8的(位数-1)次方,后求和。
示例:0234(八进制)=4*8^0+3*8^1+2*8^2=156(十进制)
十六进制转十进制
规则:从最低位(右边)开始,把每个位上的数提取出来,乘上16的(位数-1)次方,后求和。
例如:0x23A(十六进制)=11*16^0+3*16^1+2*16^2=570(十进制)
其它进制转二进制
十进制转二进制
规则:把这个数除以2,直到商为0为止,后把每步所得余数倒过来。(从下至上拼接余数)
例如:31(十进制)=0B00100010(二进制)【二进制0B开头,一个字节有八位得到的二进制6位所以补两个0在前面】
- 34/2=17……0
- 17/2=8……1
- 8/2=4……0
- 4/2=2……0
- 2/2=1……0
- 1/2=0……1
八进制转二进制
规则:把八进制的每一位转为对印的三位的二进制即可。
例如:0237(八进制)=0b10011111(二进制)
- 2=010
- 3=011
- 7=111
十六进制转二进制
规则:把十六进制的每一位,转为4位的一个二进制数即可。
例如:0x23B(十六进制)=0b001000111011(二进制)
- 2=0010
- 3=0011
- B=1011
其它进制转八进制
十进制转八进制
规则:把这个数除以8,直到商为0为止,后把每步所得余数倒过来。
131(十进制)=0203(八进制)【八进制,0开头】
- 131/8=16……3
- 16/8=2……0
- 2/8=0……2
二进制转八进制
规则:从最低位(右边)开始,把二进制每三位一组,转为对应的八进制即可。
例如:0b11010101(二进制)=0325(八进制)【开头补零】
- 011=3
- 010=2
- 101=5
十六进制转八进制
其它进制转十六进制
十进制转十六进制
规则:把这个数除以16,直到商为0为止,后把每步所得余数倒过来。(从下至上拼接余数)
例如:237(十进制)=0xED(十六进制)【十六进制以0x开头】
237/16=14(E)……13(D)
二进制转十六进制
规则:从低位开始,把二进制每四位一组,转成十六进制数即可。
例如:0b11010101=0xD5
- 0101=5
- 1101=D
八进制转十六进制
通过八进制转二进制后二进制转为十六进制即可