float比long型別的資料範圍大。
float:4個位元組
long:8個位元組
為什麼float的4個位元組比long型別的8個位元組的範圍大?
因為整數與小數的底層儲存有點不同。
相同點:它們都是用二進位制儲存的
不同點:
小數先轉成二進位制,然後處理,然後儲存。
符號位 其中最左邊的為符號位,0為正,1為負。
指數 接下來的e是指數,一共8位,也用二進位制來表示。ieee規定,在float型別中,用來計算指數的偏移量為127(即存貯指數時要在原基礎上+127)。
尾數 最後的f是小數部分,尾數正是由這23位的小數部分+1位組成的。
float實際指數的取值範圍為-126~+127(其中-127和128作為特殊規定)
於是float的取值範圍為(尾數字最小值)-2* 2^127 到(尾數字最大值)+2*2^127
即-2^128到+2^128,表示為十進位制為-3.4*10^38到+3.4*10^38
而long的範圍是
-9223372036854775808~9223372036854775807(只有19位)
所以float的範圍遠大於long,但是如果將long強制型別轉換為float可能會出現經度損失(float的精度為科學記數法的小數點後6~7位)。
為什麼 比list()更快?
我最近比較了和list 的處理速度,並且驚訝地發現執行速度比list 快三倍以上。我跑了相同的測試與 和dict 結果幾乎相同 和 兩個花了大約0.128sec 百萬次,而list 和dict 大約花費每個0.428sec 萬次。後來我查了查原因,得到的結論如下 list 需要全域性查詢和函式呼叫,...
為什麼給long型別的變數初始化需要加L?
byte a 30 short b 30000 int c 200000000 long d 74000000000l 等號後面的這些數字不僅僅只是數字,這些數字其實是常量。這些式子的真正含義是說將常量轉化為變數。30,30000,200000000這三個數系統預設將他們作為int型別的常量,在對a...
為什麼get比post更快
get和post在面試過程中一般都會問到,一般的區別 1.post更安全 不會作為url的一部分,不會被快取 儲存在伺服器日誌 以及瀏覽器瀏覽記錄中 2.post傳送的資料量更大 get有url長度限制 3.post能傳送更多的資料型別 get只能傳送ascii字元 4.post比get慢 我相信不...