1.简述位、字节的关系
位(bit)是计算机中最小的表示单元,数据传输是以“位”为单位的,1bit缩写为1b
字节(Byte)是计算机中最小的存储单位,1Byte缩写为1B
8bit = 1Byte
2.简述ascii、unicode、uft-8、gbk的关系
美国制定了一套字符编码,对英语字符与二进制位之间的关系做了统一规定,这被称为ASCII码,由1个字节组成,最多支持2**8=256个字符
Unicode是国际组织制定的可以容纳世界上所有文字和符号的字符编码方案,现代操作系统和大多数编程语言都直接支持Unicode,不管是英文字母还是汉字,通常由2个字节组成(只有很生僻的字符才会被编码成4个字节),最多支持2**16=65536个字符,如果文本基本全部都是英文的话,用Unicode编码比ASCII编码需要多一倍的存储空间,所以本着节约精神,出现了UTF-8编码
UTF-8最大的特点就是它是一种可变长的编码方式,通常由1-3个字节组成,常用的英文字母被编码成1个字节,汉字通常是3个字节(只有很生僻的字符才会被编码成4-6个字节),同时ASCII编码可以看成UTF-8编码的一部分(英文字符),所以只支持ASCII编码的软件可以在UTF-8编码下运行
GBK是汉字国标扩展码,由于GBK同时也涵盖了Unicode所有CJK汉字,所以也可以和Unicode做一一对应。Windows默认编码GBK,中文占2个字节
现在计算机系统通用的字符编码工作方式:在计算机内存中,统一使用Unicode编码,当需要保存到硬盘或需要传输时候,就转换为UTF-8编码
3.请写出“李杰”分别用utf-8和gbk编码所占的位数
UTF-8中一个英文占1个字节,一个中文占3个字节,此处“李杰”占6个字节
GBK中一个中文占2个字节,此处“李杰”占4个字符
4.如有一个变量n1 = 5,请使用int提供的方法,得到该变量最少可以用多少个二进制位表示?
#!/usr/bin/env python
#-*- encoding:utf-8 -*-
n1 = 5
v = int.bit_length(n1)
print(v)
5.布尔值分别有什么?
True和False
"" [] () {} => False #空字符串,空列表,空元祖,空字典
"有内容" => True
0 => False
其他数字 => True
6.阅读代码,