Python学习 第一章:数据存储

简介

解释性、交互式、面向对象语言。

特点

易于学习:python有较少的关键字,结构简单,和一个明确定义的语法。(关键字指语言中预留的,有一些特殊含义的一些词)

 易于阅读:python代码定义的更清晰。

 易于维护:源代码相当容易维护。

 一个广泛的标准库:python的最大优势之一是丰富的库,跨平台的,在Unix、windows               和Macintosh兼容很好。

 互动模式:互动模式的支持,可以从终端输入执行代码并获得结果的语言,互动的测试             和调试代码片段。

可移植:基于开放的源代码特性,python已经被移植(也就是使其工作)到许多平台。

可扩展:如果需要一段运行很快的关键代码,或者是想要编写一些不开放的算法,可以             使用C或C++完成那部分程序,然后从你的python程序中调用。

数据库:python提供所有主要的商业数据库的接口。

GUI编程:python支持GUI可以创建和移植到许多系统调用。

可嵌入:可以将python嵌入到C或C++程序,让你的程序的用户获得“脚本化”的功能。

缺点:运行速度慢、代码不能加密。

第一章  数据存储

推荐一个文本编辑器:subline(基本上大多数的语言都能编写和执行)

1.为什么使用计算机?      存储数据、计算数据

2.数据存在哪里?      数据存储在内存里

3.为什么现在几乎都用64位的操作系统而不用32位的操作系统了?      由于内存的不断增长,内存用于存储数据,但是之后还会涉及到取数据,而32位的操作系统,最大的寻址空间是三G多,而现在大多都是4G、8G的内存,就会导致后面的数据无法取到。

4.数据如何在内存里存储的?     首先弄明白怎么存储数字(例如:10)。

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

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

内存相关单位

1bit         8bit==一个字节      1024字节==1K      1024K==1M      1024M==1G     1024G==1T

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

进制(二进制、八进制、十进制、十六进制)

二进制:0  1    逢二进一         0+0=0、0+1=1、1+1=10、11+1=100

八进制:0 1 2 3 4 5 6 7        逢八进一     1+7=10、1+2=3

十进制:0 1 2 3 4 5 6 7 8 9      逢十进一 

十六进制:0 1 2 3 4 5 6 7 8 9 a b c d e f      逢十六进一    1+f=10

十六进制作用:内存地址用十六进制表示。

进制转换

十进制转二进制:倒除法(除2取余法),余数逆序。

10(10)->1010(2)

Python学习 第一章:数据存储_第1张图片

二进制转十进制:当前的数字,乘以2的位数次方,最后相加。

1010(2)->10(10)

0*2^0+1*2^1+0*2^2+1*2^3=0+2+0+8=10

Python学习 第一章:数据存储_第2张图片

八进制转二进制:八进制数通过除2取余法,得到二进制数,对每个八进制为3个二进制,不足时在最左边补零。(有个简洁的8421法)

65(8)->110101(2)

Python学习 第一章:数据存储_第3张图片


Python学习 第一章:数据存储_第4张图片

二进制转八进制:3位二进制数按权展开相加得到1位八进制数。(注意事项,3位二进制转成八进制是从右到左开始转换,高位不足时补0)。

Python学习 第一章:数据存储_第5张图片

十六进制转二进制:十六进制数通过除2取余法,得到二进制数,对每个十六进制为4个二进制,不足时在最左边补零。

a4-(16)>10100100(2)

Python学习 第一章:数据存储_第6张图片

二进制转十六进制:取四合一。(注意事项,4位二进制转成十六进制是从右到左开始转换,高位不足时补0)。

Python学习 第一章:数据存储_第7张图片

数据存储过程(例如想存数字10:10(10)->1010(2))

计算机存储数据,首先必须知道这个值在内存中占几个字节,然后先开辟内存空间(有的空间已经有数据,就最好不要用,以免将数据覆盖),再存储数据(存这个数据的二进制)。计算机开辟内存的最小单位是字节。在存储数据时,用最高位表示符号,1表示负数,0表示正数。

想把数字10存到内存里,首先要在内存中开辟4个字节32位的空间,开辟万空间之后,将10变成二进制的数,再将其放进去,此时才是将数据正真的存到了内存中去。但是只有4位。

00000000000000000000000000000001(高位补0)(正1)

10000000000000000000000000000001(-1)

思考:数据真的是这样存的吗?如果是,那么上面正10和-10相加应该等于0才对。但是事实并不是这样。

变为了:10000000000000000000000000000010(-2)。说明并不是以这种形式存的,需要变一变。

想要知道到底是如何存的,需要知道以下三个概念:原码、反码、补码。

原码:规定了字节数,写明了符号位,就得到了数据的原码。例如:

+1的原码就是上面的:00000000000000000000000000000001

-1的原码就是:10000000000000000000000000000001

反码:正数的反码是其原码;负数的反码是其原码的符号位不动,其他位取反。例如:

+1的反码还是:00000000000000000000000000000001

 -1的反码就是:11111111111111111111111111111110

补码:正数的补码与原码相同;负数的补码是其反码加1。例如:

+1的补码还是:00000000000000000000000000000001

-1的补码就是:11111111111111111111111111111111

总结:数据的存储是以其补码形式存储的。

你可能感兴趣的:(Python学习 第一章:数据存储)