任意进制转十进制
系数:每一个位上的数字(157, 个位的系数是7,十位上的系数为5,百位上的系数1)
基数: 几进制就是几(十进制基数是10)
权: 一个数从右到左,从0开始,对每一位数据进行编号,那么这个编号就是这个位置上的数字的权
规律:任意进制到十进制的转换等于 这个数据的各个位上的系统乘以基数的权次幂相加的和。
十进制转十进制:157 = 710^0+510^1+110^2 = 7+50+100=157
二进制转十进制:0b110 = 02^0 + 12^1 + 12^2 = 0 + 2 + 4 = 6
负数的二进制转十进制:
-5 如何用二进制表示是取其补码:1111 1011
1111 1011 对应十进制中的多少,就是补码的逆运算【减一取反】
1111 1011 减1 1111 1010 取反 1000 0101 = -5
十进制到任意进制
十进制转二进制
正整数十进制转二进制规则:除2取余,然后倒序排列,高位补零。
- 83除以2得到的余数分别为1100101,然后咱们倒着排一下,83所对应二进制就是1010011。
- 计算机内部表示数的字节单位是定长的,如8位,16位,或32位。所以,位数不够时,高位补零。
负整数十进制转二进制规则:先是将对应的正整数转换成二进制后,对二进制取反,然后对结果再加一。其实就是取负整数的补码。因为计算机中存储的是补码。
十六进制到二进制
规律:十六进制中的1位数代表二进制中的4位数。
十六进制转二进制:41=0100 0001
二进制转换为16进制
规律:二进制中的4位数代表十六进制中的1位
二进制转十六进制:1101 0110 = D6
八进制到二进制
规律:八进制中的1位数代表二进制中的3位数。
八进制转二进制:65= 110 101
二进制到八进制
规律:二进制中的3位数代表八进制中的1位
二进制转八进制:1 110 111 010 = 1672
@Test
public void test_4() {
int a = 100;
System.out.println(a); // 100
int b= 0b100; //二进制 0b
System.out.println(b); // 4
int c = 0100; //八进制 0
System.out.println(c); // 64
int d = 0x100; //16进制 0x
System.out.println(d); // 256
}
负数的二进制转十进制
1000 0000
先减1 -> 0111 1111
按位取反 -> 1000 0000
转为十进制 -> 128
添加负号 -> -128
其实就是 补码的逆运算。