内存的概念
内存是计算机中重要的部件之一,它是与CPU进行沟通的桥梁。计算机中所有程序的运行都是在内存中进行的,因此内存的性能对计算机的影响非常大。内存(Memory)也被称为内存储器,其作用是用于暂时存放CPU中的运算数据,以及与硬盘等外部存储器交换的数据。只要计算机在运行中,CPU就会把需要运算的数据调到内存中进行运算,当运算完成后CPU再将结果传送出来,内存的运行也决定了计算机的稳定运行。 内存是由内存芯片、电路板、金手指等部分组成的。
抽象理解:
一个开关,有两种状态,开启和关闭,一种对应1,另一种对应0。把八个开关放到一间房子中,可以将该房间称之为“一个字节”,一个开关代表“一位”。每个房间都有一个门牌号,看做“地址”,把无数个房间罗列起来组成摩天大厦,可以将大厦看做内存
注意:内存中以二进制形式存储数据
单位:
1bit
8bit = 1字节
1024字节 = 1k
1024k = 1M
1024M = 1G
1024G = 1T
进制
二进制
数字: 0 1
特征:逢二进一
场景:数据存储
1 + 1 = 10
八进制
数字:0 1 2 3 4 5 6 7
特征:逢八进一
1 + 7 = 10
十进制
数字:0 1 2 3 4 5 6 7 8 9
特征:逢十进一
1 + 9 = 10
十六进制
数字:0 1 2 3 4 5 6 7 8 9 a b c d e f
特征:逢十六进一
场景:表示内存地址
1 + f = 10
1 + d = e
1 + 9 = a
0 1 2
进制转换
十进制转二进制:
原理:倒除法,余数逆序
11(10) -- 1011(2)
二进制转十进制:
原理:当前的数字乘以2的位数次方,最后每一位相加
1011(2) -- 11(10)
1 x 2^0 + 1 x 2^1 + 0 x 2^2 + 1x2^3=1+2+0+8=11
二进制转八进制:
原理:三位一取,从二进制数字的低位开始取3位,将之转为十进制数字即为对应的八进制数,位数不够高位补0
1011(2) -- 13(8)
二进制转十六进制:
原理:四位一取,从二进制数字的低位开始取4位,将之转为十进制数字即为对应的十六进制数,位数不够高位补0
1011(2) -- b(16)
八进制转二进制:
原理:一转三位,八进制的一位相当于二进制的三位(位数不够高位补0),转换的时候按照十进制操作
13(8) -- (2)
十六进制转二进制:
原理:一转四位,十六进制的一位相当于二进制的四位(位数不够高位补0),转换的时候按照十进制操作
b(16) -- 1011(2)
扩展:8421
存储数据
1、先开辟空间,在存储数据,计算机开辟空间最小单位是字节
2、用最高位表示符号位,用0表示正数1表示负数,其他的是数据位
原码、反码、补码
原码:
规定了字节数,写明了符号位,就得到了数据的原码
思考:计算机是否以原码的形式存储数据的?
0000 0000 0000 0000 0000 0000 0000 0101
1000 0000 0000 0000 0000 0000 0000 0101
1000 0000 0000 0000 0000 0000 0000 1010
结论:计算机不以原码形式存储数据
反码
正数的反码是其原码,负数的反码是其原码符号位不变,其他位取反
思考:计算机是否以反码的形式存储数据的?
0000 0000 0000 0000 0000 0000 0000 0101
1111 1111 1111 1111 1111 1111 1111 1010
1111 1111 1111 1111 1111 1111 1111 1111
结论:计算机不以反码形式存储数据
补码
正数的补码是其原码,负数的补码是其反码加1
思考:计算机是否以补码的形式存储数据的?
0000 0000 0000 0000 0000 0000 0000 0101
1111 1111 1111 1111 1111 1111 1111 1011
1 0000 0000 0000 0000 0000 0000 0000 0000
问题:多出来的溢出
结论:计算机以补码形式存储数据
逆推原码
根据补码得到其原始数据:
将其看成原码,求其补码,得到的补码就是数据的原码
1111 1111 1111 1111 1111 1111 1111 1011
1000 0000 0000 0000 0000 0000 0000 0100
1000 0000 0000 0000 0000 0000 0000 0101