第一模块-:(第2章)数据类型、字符编码、文件操作

1、汉字点阵码是一种用黑白两色点阵来表示汉字字形的编码。一个8*8点阵字模的存储容量为?

1、1字节(Byte)有8比特(Bit)
2、黑白两色每个点占用1Bit
3、8×8点阵需要64个Bit
4、因为1Byte有8Bit,所以64Bit/8Bit/Byte = 8Byte
答案是B:8字节。

2、(多选题) 选项中:关于为什么使用十六进制说法,选出你认为正确的是():

A十六进制比二进制更简短
B十六进制相比其他进制阅读和存储都更方便
C十六进制在数据交换时也很便利
D为了统一规范,CPU、内存、硬盘都是采用二进制计算


CPU、内存、硬盘采用的是十六进制计算;

1位十六进制能代表4位二进制,所以十六 进制更简短;
一个字节用2位十六进制就可以表示所以阅读存储都很方便,CPU运算也是遵照ASCII字符集,
以16、
32、64的方向发展,故数据交换时十六进制也更便利,所以A,B,C正确。

16进制用在哪里
1、网络编程,数据交换的时候需要对字节进行解析都是一个byte一个byte的处理,1个byte可以用0xFF两个16进制来表达。通过网络抓包,可以看到数据是通过16进制传输的。
2、数据存储,存储到硬件中是0101的方式,存储到系统中的表达方式都是byte方式

3、一些常用值的定义,比如:我们经常用到的html中color表达,就是用的16进制方式,4个16进制位可以表达好几百万的颜色信息。

3、浮点数的精确度 

二、浮点数

浮点数也就是小数,之所以称为浮点数,是因为按照科学记数法表示时,一个浮点数的小数点位置是可变的,比如,1.23x10^9和12.3x10^8是相等的。
浮点数可以用数学写法,如1.23,3.14,-9.01,等等。但是对于很大或很小的浮点数,就必须用科学计数法表示,把10用e替代,1.23x10^9就是1.23e9,或者12.3e8,0.000012可以写成1.2e-5,等等。 整数和浮点数在计算机内部存储的方式是不同的,整数运算永远是精确的,而浮点数运算则可能会有四舍五入的误差。 ---------------------

(单选题) python解释器在计算1.2-1.0的结果为(D):

 
 
  • A0.2
  • B0.199
  • C0.1
  • D以上都不是
# pyhton3中,"/"表示的就是float除,不需要再引入模块,就算分子分母都是int,返回的也将是浮点数
# 方法一:可以使用//求取两数相除的商、%求取两数相除的余数。[/在Python中获取的是相除的结果,一般为浮点数]
# 方法二:使用divmod()函数,获取商和余数组成的元祖
# 实例代码:
print(3/2) # 1.5
print(3//2) # 1
print(1.0/2.0) # 0.5
print(1.2-1.0) # 0.19999999999999996
# 精确度去2
print('%.2f' %(1.2-1.0)) # 0.20
print(divmod(2,3)) # 0,2


---------------------------------
>>>1.2 – 1.0 == 0.2 False
>>>2.0 – 1.0 == 1.0 True

第1个表达式结果为带有微小误差的近似值,所以不等于0.2;第2个表达式结果小数位为0,所以为True

-------------------------------------------------------

程序语言浮点数由单精度型和双精度型两种

单精度型占4个字节32位的内存空间只能提供七位有效数字

双精度型占8个字节64位的内存空间可提供17位有效数字

python 3 浮点数默认的是 17位数字的精度

将精度高的浮点数转化成精度低的浮点数,内置方法 round() roud(2.873 , 2) ===> 2.87

格式化 %.2f 保留两位小数

python 的浮点数损失精度问题,python 是以双精度64位来保存浮点数,多余的位会被截掉,比如 0.1 ,电脑保存的不是精准的 0.1 ,而是 0.10000000001,参与运算后,就会产生误差,特别是哪些对精度要求高的,比如金融领域,

解决方法, round 方法 或 利用 decimal 模块 /raʊnd/ 英/'desɪm(ə)l/ 来解决浮点数精度问题,规定浮点数只到小数点几位数

猜你喜欢

转载自www.cnblogs.com/foremostxl/p/9819867.html