阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Python数据存储

117次阅读
没有评论

共计 1757 个字符,预计需要花费 5 分钟才能阅读完成。

一、对于数据存储的思考

  • 为什么使用计算机?

    为了存储、处理数据

  • 数据存在哪里?

    数据存储在内存中

  • 内存是怎么存储数据的?

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

二、内存

  • 概念

    内存是计算机中重要的部件之一,它是与 CPU 进行沟通的桥梁。计算机中所有程序的运行都是在内存中进行的,因此内存的性能对计算机的影响非常大。内存 (Memory) 也被称为内存储器,其作用是用于暂时存放 CPU 中的运算数据,以及与硬盘等外部存储器交换的数据。只要计算机在运行中,CPU 就会把需要运算的数据调到内存中进行运算,当运算完成后 CPU 再将结果传送出来,内存的运行也决定了计算机的稳定运行

  • 抽象

    一个开关,有两种状态,开启和关闭,一种对应 1,另一种对应 0。把八个开关放到一间房子里,可以称这间房子为“一个字节”,一个开关代表“一位”。每个房间都有门牌号,看做“地址”。把无数个房间叠起来组成摩天大厦,可以把摩天大厦看成内存

  • 单位

    Python 数据存储

  • 说明

    内存中以二进制形式存储数据

三、进制

  • 十进制

    特性:逢十进一

    数字:0 1 2 3 4 5 6 7 8 9

    计算:1 + 9 = 10

  • 二进制

    特性:逢二进一

    数字: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 a b c d e f

    计算:1 + f = 10

四、进制转换

  • 十进制转二进制

    公式:倒除法,余数逆序

    转换:10(10) –> 1010 (2)

Python 数据存储

  • 二进制转十进制

    公式:计算每一位的 2 的位数次方,再相加

    转换:1010(2) –> 0 x 2^0 + 1 x 2^1 + 0 x 2^2 + 1 x 2^3 = 0+2+0+8 = 10(10)

Python 数据存储

  • 二进制转八进制

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

    转换:010110011(2) –> 263 (8)

Python 数据存储

  • 二进制转十六进制

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

    转换:100101100(2) –> 12C (16)

Python 数据存储

  • 八进制转二进制

    公式:【一转 3 位】八进制的一位相当于二进制的 3 三位,计算时按照十进制数字转换

    转换:263(8) –> 010110011(2) (2)

    Python 数据存储

  • 十六进制转二进制

    公式:【一转 4 位】十六进制的一位相当于二进制的 4 位,计算时按照十进制数字转换

    转换:12C(16) –> 100101100 (2)

Python 数据存储

五、存储数据

  • 数据存储过程

    a、计算机存储数据,先开辟空间,再存储数据,计算机开辟内存空间最小单位是字节

    b、在存储数据时,用最高位表示符号位,用 0 表示正数 1 表示负数,其他的表示数据

  • 原码

    概念:规定了字节数,写明了符号位,得到数据的原码

    示例:

    ​ 数字正 1 的原码:0000 0000 0000 0000 0000 0000 0000 0001

    ​ 数字负 1 的原码:1000 0000 0000 0000 0000 0000 0000 0001

    思考:计算机是如何用二进制存储数据的,是不是用的原码的形式?

    验证:
    Python 数据存储

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

  • 反码

    概念:正数的反码就是其原码,负数的反码是其符号位不动,其他为取反

    示例:

    ​ 数字正 1 的反码:0000 0000 0000 0000 0000 0000 0000 0001

    ​ 数字负 1 的反码:1111 1111 1111 1111 1111 1111 1111 1110

    思考:计算机是如何用二进制存储数据的,是不是用的反码的形式?

Python 数据存储

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

  • 补码

    概念:正数的补码是其反码,正数三码合一,负数的补码是其反码加 1

    示例:

    ​ 数字正 1 的补码:0000 0000 0000 0000 0000 0000 0000 0001

    ​ 数字负 1 的补码:1111 1111 1111 1111 1111 1111 1111 1111

    思考:计算机是如何用二进制存储数据的,是不是用的补码的形式?

    验证:
    Python 数据存储

    说明:高位溢出

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

  • 知道补码求取真实数据

    原理:看成原码,求其补码,得到的补码就是数据的原码

    a、内存数据:1111 1111 1111 1111 1111 1111 1111 1101

    b、看成原码:1111 1111 1111 1111 1111 1111 1111 1101

    c、求其反码:1000 0000 0000 0000 0000 0000 0000 0010

    d、求其补码:1000 0000 0000 0000 0000 0000 0000 0011

    e、数据原码:1000 0000 0000 0000 0000 0000 0000 0011

    f、真实数据:-3

正文完
星哥说事-微信公众号
post-qrcode
 
星锅
版权声明:本站原创文章,由 星锅 2022-05-26发表,共计1757字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中