内存0.1---内存里数据的表示形式以及进制转换
Posted yulianggo
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了内存0.1---内存里数据的表示形式以及进制转换相关的知识,希望对你有一定的参考价值。
操作系统的位数与内存的关系:
32位操作系统是指系统的寻址空间是2的32次方,即4G,也就是说32位操作系统只支持最大4G的内存,64位操作系统寻址空间理论上为2的64次方,即17179869184G,目前最大支持128G,主流主板最大容量为16G。
内存的概念:
内存存储的是二进制数,可以将内存抽象为开关。一个开关对应两应两种状态,一种状态对应1,一种状态对应0。把八个开关放到一间房子里面,这间房子就相当于一个字节。房间的门牌号相当于地址。无数个房间堆叠且,形成了摩天大厦,大厦就相当于内存。
10这个十进制数字占用4个房间,有32个开关。
存储单位的转换:
8bit=1Byte
1024Byte=1KByte
1024KByte=1MByte
1024MByte=1GByte
1024GByte=1TByte
进制的转换:
二级制: 1+1=10 (逢二进一)
八进制:1+7=10 (逢八进一) 沟通二进制与16进制
十进制:9+1=10 (逢十进一)
十六进制:F+1=10 (逢16进一) 内存地址用16进制表示
十进制-》二进制 : 倒除法,余数逆序
示例:10(十进制)-》1010(二进制)
2| 10
2 | 5 余数为0
2| 2 余数为1
2| 1 余数为0
| 0 余数为1
二进制-》十进制
当前的数字乘以2的位数次方,最后相加
例如:1010(二进制)
0*2^0+1*2^1+0*2^2+1*2^3=10(十进制)
八进制-》二进制
【一转三位】八进制的一位转换为二进制读的3位,转换时用十进制转换
456(八进制)-》100 101 110 (二进制)
二进制-》八进制
【三位一取】三个二进制数相当于一位八进制,从低位开始取,高位不够加0
101 110(二进制)-》56(八进制)
十六机制-》二级制
【一转四位】十六机制的以为相当于二进制的四位,转换时用十进制转换
FED->1111 1110 1101(二进制)
二进制-》十六进制:
【四位一取】四位二进制相当于一位十六进制,从低位开始取,高位不足补0
1010 1111 1101(二进制)-》AFD(十六进制)
内存里数据的表示形式及原因:
计算机存储数据的流程:先开辟内存空间,再存储数据。即算机以字节为单位开辟空间。
1010这个数占4个字节,前面填充28个0,内存存放的形式是:0000000000000000000000000001010
存放的最高位表示符号:0表示正数 1表示负数
+1:00000000000000000000000000000001
-1:10000000000000000000000000000001
10000000000000000000000000000010
若-1由 10000000000000000000000000000001表示
那-1+1=-2,明显不对,因此-1不能由10000000000000000000000000000001表示
引出原码,反码,补码的概念
原码:规定了字节数,写明了符号位,得到了数据的原码
反码:正数的反码是其自己,负数的反码是其原码的符号位不变,其他位取反
补码:正数的补码是其自己,负数的补码是其反码加1
计算机中的所有数都是以补码的形式存储的
-1的原码:10000000000000000000000000000001
-1的反码:1111111111111111111111111111111110
-1的补码:1111111111111111111111111111111111
+1的原码=反码=补码=00000000000000000000000000000001
因此+1+(-1)就是:
+1:00000000000000000000000000000001
-1:11111111111111111111111111111111111
00000000000000000000000000000000
结果很显然就是0,因此用补码的形式表示所有数字是可行的
以上是关于内存0.1---内存里数据的表示形式以及进制转换的主要内容,如果未能解决你的问题,请参考以下文章