计算机数据存储与进制

计算机数据存储与进制

python软件安装

链接:https://pan.baidu.com/s/1WrbMwSLbyeXLyDWzhaFnLA
提取码:wzvn

内涵:pycharm专业版、python3.6以及安装介绍

数据存储

在前面 我们首先思考一下,

1.为什么要使用计算机?

当然是为了存储数据、处理数据

2.数据存在哪里?

数据存储在内存当中

3.那么内存是如何存储数据的呢?

首先得先要弄清楚怎么存储数字

内存

内存是计算机存储数据的一个介质

抽象内存:一个开关,有两种状态,一种为开,一种为关,我们把开对应为1,把关对应为0。把8个开关丢入到一个房间里,那么就可以称这个房间为一个字节。一个开关代表的是一位数,每个房间都有门牌号,可以看作成地址。把无数个房间罗列起来组成一个摩天大厦,把摩天大厦看做成内存。

单位

​ 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

进制转换

十进制转二进制

​ 公式:倒除法,余数逆序

例如55 
55除以227   余数1
27除以213   余数1
13除以26	 余数1
6除以23	 余数0
3除以21	 余数1
那么逆序可得110111

二进制转十进制

​ 公式:当前的数字(0、1)乘以2的位数次方,然后相加

例如110111
1 x 2^5 + 1 x 2^4 + 0 x 2^3 + 1 x 2^2 + 1 x 2^2 + 1 x 2^1 + 1 x 2^0
= 32 + 16 + 0 + 4 + 2 + 1 
= 55

八进制转二进制

​ 公式: [一转三位] 八进制的一位相当于二进制的三位,计算时按十进制转换,不足三位高位补0

例如65
6 _ _ _  计算:6除以23,余数03除以21,余数1. 那么6可以化为 1 1 0
5 _ _ _  计算:5除以22,余数12除以21,余数0. 那么5可以化为 1 0 1
总结可得65110101

二进制转八进制

​ 公式: [三位一取] 从低位开始,每三位得到一个八进制数字,最后高位不足则补0

例如110101
0110 _ 计算:0x2^3+1x2^2+1x2^1+0x2^0 得出0+4+2+0=6
0101 _ 计算:0x2^3+1x2^2+0x2^1+1x2^0 得出0+4+0+1=5
综上述可得11010165

十六进制转二进制

公式: [一转四位] 十六进制的一位相当于二进制的四位,计算时按十进制转换,不足四位高位补0

例如75
7 _ _ _ _ 计算:7除以23,余数13除以21,余数1. 那么7可以化为 0 1 1 1
5 _ _ _ _ 计算:5除以22,余数12除以21,余数0. 那么5可以化为 0 1 0 1
总结可得7501110101

二进制转十六进制

公式: [四位一取] 从低位开始,每四位得到一个十六进制数字,最后高位不足则补0

例如01110101
0111 _ 计算:0x2^3+1x2^2+1x2^1+1x2^0 得出0+4+2+1=7
0101 _ 计算:0x2^3+1x2^2+0x2^1+1x2^0 得出0+4+0+1=5
综上述可得0111010175

其实我们可使用一个简便得方法

叫做8 4 2 1

例如 01100101
0 1 1 0 0 1 0 1
---------------
8 4 2 1 8 4 2 1

可得出4+2=6 4+1=5
得出65

例如 01110101
0 1 1 1 0 1 0 1
---------------
8 4 2 1 8 4 2 1

可得出4+2+1=7 4+1=5
得出75

进制对应表

十进制二进制八进制十六进制
0000
1111
21022
31133
410044
510155
611066
711177
81000108
91001119
10101012a
11101113b
12110014c
13110115d
14111016e
15111117f

存储数据的方式

内存中存储的是数据的二进制形式
存储数据:
1、计算机先开辟空间,在存储数据,计算机开辟空间的最小单位是字节
2、在数据存储时,用最高位标识符号位,0表示正数,1表示复数

原码

原码:规定了字节数,写明了符号位,得到了数据的原码
思考:内存是以数据原码的形式存储的吗?

     0000 0000  0000 0000  0000 0000  0000 0001
+    1000 0000  0000 0000  0000 0000  0000 0001
---------------------------------------------------
     1000 0000  0000 0000  0000 0000  0000 0010   -2

结论:不以原码的形式存储数据

反码

反码:正数的反码就是其原码,负数的反码事其原码的符号位不变其他位取反
思考:内存是以数据反码的形式存储的吗?

    0000 0000  0000 0000  0000 0000  0000 0001
+   1111 1111  1111 1111  1111 1111  1111 1110
--------------------------------------------------- 
    1111 1111  1111 1111  1111 1111  1111 1111

结论:不以反码的形式存储数据

补码

补码:正数的补码是其原码(正数三码合一),负数的补码是反码加1

    0000 0000  0000 0000  0000 0000  0000 0001
+   1111 1111  1111 1111  1111 1111  1111 1111
---------------------------------------------------  
  1 0000 0000  0000 0000  0000 0000  0000 0000
# 加法最后得到的1溢出了,没有存储到内存中

结论:以补码的形式存储数据

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值