1. 进制转换
二进制转十进制:将二进制的每一位*2的次幂数,加到一起求和,就是对应的十进制
二进制数101转为十进制 = 1*2^0 + 0*2^1 + 1*2^2 = 1 + 0 + 4 = 5
十进制转二进制:让十进制数除以2,取商和余数。让商继续除以2取商和余数,直到商为0结束。余数反转。
十进制数11转换为二进制数 11/2 = 5……1 5/2 = 2……1 2/2 = 1……0 1/2 = 0……1 11转换为二进制数为1011
二进制转换成八进制:三位一分,不足三位补0,再将每一个部分转十进制方式求和,将结果拼接到一起
二进制转换为十六进制:四位一分,不足四位补0,再将每一个部分转十进制方式求和,将结果拼接到一起
2. Java中将其他进制数转为十进制展示
class Test{
public static void main(String[] args){
System.out.println(0b101); //输出结果为:5
// 0b/0B开头 二进制转十进制
System.out.println(023); //输出结果为:19
// 0开头 八进制转十进制
System.out.println(0x11); //输出结果为:17
// 0x/0X开头 十六进制转十进制
}
}
3. 计算机的存储单位
计算机都是以二进制存储内存,不同类型的数据,存储方式不同
bit:一个二进制位就会占用一个bit 0 1
字节byte:8个bit是一个字节
1byte = 8 bit
1kb = 1024byte
1Mb = 1024kb
1Gb = 1024Mb
1Tb = 1024Gb
计算机中整型存储
整数存储是存储的补码: 原码 反码
原码:把十进制转换为二进制,二进制数为原码。最高位是符号位 0 是正数,1是负数
反码:符号位不变,其余位0变1,1变0。得到的结果为反码
补码为反码 + 1
十进制数 正数25 三码合一: 0001 1001(原码、反码、补码一样的) 负数 -25 原码: 1001 1001 反码: 1110 0110 补码: 1110 0111