day02-4初识编码

编码
咱们的电脑中存储和发送文件时,发送的是什么?发送的是文件本身吗? 不是的电脑里面是不是有成千上万个二极管,当这个二极管亮起开的时候代表是1,不亮的时候代表是0,这样实际上电脑的存储和发送是不是都是010101啊

我们发送的内容都是010101010这样写的内容比较多就容易出现问题,问题是对方不知道发送的具体是什么内容啊,所以我们想要明确的区分出来发送的内容就需要在某个地方进行分段.计算机中设定的就是8位一断句,但是断句后发送给对方,对方也应该有个参照表来进行翻译.最早时期的参照本是ascii本

ASCII
`计算机:
储存文件,或者是传输文件,实际上是010101010
计算机创建初期,美国,是7位一段,但是发明者说为了拓展,留出一位,这样就是8位一段句。8位有多少种可能 ?256

密码本:
ascii
     00000001
     01000001 01000010 01000011   ABC`

随着计算机的发展. 以及普及率的提高. 流⾏到欧洲和亚洲. 这时ASCII码就不合适了. 比如: 中⽂汉字有几万个. 而ASCII 多也就256个位置. 所以ASCII不行了. 怎么办呢? 这时, 不同的国家就提出了不同的编码用来适用于各自的语言环境. 比如, 中国的GBK, GB2312, BIG5, ISO-8859-1等等. 这时各个国家都可以使用计算机了.

GBK
GBK, 国标码占用2个字节. 对应ASCII码 GBK直接兼容. 因为计算机底层是用英文写的. 你不支持英文肯定不行. 而英文已经使用了ASCII码. 所以GBK要兼容ASCII. 这里GBK国标码. 前⾯的ASCII码部分. 由于使⽤两个字节. 所以对于ASCII码⽽言. 前9位都是0
字母A:0100 0001 # ASCII 字母A:0000 0000 0100 0001 # 国标码
随着全球化的普及,发展到欧洲,亚洲等国家,发现这些根本不够用,所以创建了万国码。 因为全球语言很多,ascii不足以存储这么多对应关系,创建了一个超级密码本:万国码unicode
8 位 == 1个字节. hello h一个字符,e一个字符,he就不是一个字符. 中国:中是一个字符,国是一个字符.
Unicode
​ 创建之初,16位,2个字节,表示一个字符.​ 英文: a b c 六个字节 一个英文2个字节​ 中文 中国 四个字节 一个中文用2个字节

​ 但是这种也不行,这种最多有65535种可能,可是中国文字有9万多,所以改成 32位,4个字节,表示一个字符.

​ a 01000001 01000010 01000011 00000001​ b 01000001 01000010 01100011 00000001​ 中 01001001 01000010 01100011 00000001​ 浪费资源.
UTF-8
对Unicode进行升级: utf-8 utf-8 用最少用8位数,去表示一个字符. 英文: 8位,1个字节表示. 欧洲文字: 16位,两个字节表示一个字符. 中文,亚洲文字: 24位,三个字节表示.

utf-16 用最少用16位数。

gbk: 国标,只能中国人自己用, 一个中文用16位,两个字节表示。
单位转化
8bit = 1byte 8位 = 1字节 1024byte = 1KB 1024KB = 1MB 1024MB = 1GB 1024GB = 1TB 1024TB = 1PB 1024TB = 1EB 1024EB = 1ZB 1024ZB = 1YB 1024YB = 1NB 1024NB = 1DB 常用到TB就够了
进制转换
我们常说的数字都是10进制的,数字表示的形式有很多种,我们今天就简单的说一下十进制数和二进制数

他们之间是如何转换,我们先来看看十进制转换二进制,使用一种整除法,例如十进制的数是15我们想要知道15的二进制是多少就除以2获取他的余数然后从下向上将这些余数拼到一起,就是用以下的方法

我们现在知道怎么将十进制的数转换成二进制,那就再来看看怎样将二进制的数转换成十进制.

我们使用110001来举例,现在想要获取到这个二进制的数然后转换成十进制 要进行如下操作
接下来的计算我们就从右向左计算,用最右侧的数乘以2的0次方,依次向左推 1*2**0 + 0*2**1 + 0*2**2 + 0*2**3 + 1*2**4 + 1*2**5 换算下来就是 1 + 0 + 0 + 0 + 16 + 32 = 49
我们使用这种办法就能将二进制的数转换成十进制的数.
作业
1.判断下列逻辑语句的结果,一定要自己先分析 (5分钟)
1)1 > 1 or 3 < 4 or 4 > 5 and 2 > 1 and 9 > 8 or 7 < 6 2)not 2 > 1 and 3 < 4 or 4 > 5 and 2 > 1 and 9 > 8 or 7 < 6
2.求出下列逻辑语句的值,一定要自己分析(10分钟)
1)8 or 3 and 4 or 2 and 0 or 9 and 7 2)0 or 2 and 3 and 4 or 6 and 0 or 3 3)1 and 0 or 8 and 9 and 5 or 2 4)4 or 8 and not False and 8 or 9
3.下列结果是什么? (10分钟)
1) 6 or 2 > 1 2) 3 or 2 > 1 3) 0 or 5 < 4 4) 5 < 4 or 3 5) 2 > 1 or 6 6) 3 and 2 > 1 7) 0 and 3 > 1 8) 2 > 1 and 3 9) 3 > 1 and 0 10) 3 > 1 and 2 or 2 < 3 and 3 and 4 or 3 > 2
4.简述ASCII、Unicode、utf-8编码英文,中文个占用多少字节(5分钟)

5.简述位和字节的关系?(3分钟)

6.while循环语句基本结构?(3分钟)

7.利用while语句写出猜大小的游戏:(20分钟) 设定一个理想数字比如:66,让用户输入数字,如果比66大,则显示猜测的结果大了;如果比66小,则显示猜测的结果小了;只有等于66,显示猜测结果正确,然后退出循环。

8.在7题的基础上进行升级:(20分钟) 给用户三次猜测机会,如果三次之内猜测对了,则显示猜测正确,退出循环,如果三次之内没有猜测正确,则自动退出循环,并显示‘太笨了你....’。

9.使用while循环输出 1 2 3 4 5 6 8 9 10 (20分钟)

10.求1-100的所有数的和 (10分钟)

11.输出 1-100 内的所有奇数(10分钟)

12.输出 1-100 内的所有偶数(10分钟)

13.求1-2+3-4+5 ... 99的所有数的和 (30分钟)

14.用户登陆(三次输错机会)且每次输错误时显示剩余错误次数(提示:使用字符串格式化)(30分钟)

猜你喜欢

转载自www.cnblogs.com/huoxc/p/12848620.html