1. 程式人生 > >第一模組-:(第2章)資料型別、字元編碼、檔案操作

第一模組-:(第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/ 來解決浮點數精度問題,規定浮點數只到小數點幾位數