1 2 編碼什麼的

2021-08-09 15:20:10 字數 1374 閱讀 2451

crossin寫了一篇番外簡單講了一下2.7和3的一些區別,和我之前寫的意思差不多。後面教程的我覺得應該沒有什麼問題了,大家就跟著看看寫寫吧。

if,elif,else這些是不是把你看暈了?所以說咱們數學一定要好好學。如果你正在上高中,那麼記著:數學必修三一定要好好學!特別是程式框圖那塊!

如果你還沒有學到程式框圖而先學了程式設計,那麼你在學習這一塊的時候可以把框圖翻譯成程式;學習框圖之後,在看程式時遇到比較複雜的迴圈巢狀啥的可以畫個框圖整理一下邏輯。

必修三二進位制那一塊兒······了解好二進位制可以幫助你更好的理解計算機。你現在知道為什麼1gb=1024mb了嗎?

程式猿常識:

看了這個,你知道為什麼1kb≠1000b了吧(和正常單位不同)?知道為啥買的u盤總是比廠家標的小了吧?

講到這裡,又應該普及一下關於字符集的常識,這有助於你理解計算機是如何將二進位制變成我們讀得懂的字母的:

看不懂?看看ascii碼表體會一下:

二進位制十進位制

十六進製制

縮寫名稱/意義

0000 0000000

nul空字元(null)

以上是控制字元

二進位制十進位制

十六進製制

圖形0010 0000

3220

(空格)

0010 0001

3321

!0100 0001

6541

a0100 0010

6642

b0100 0011

6743c

以上是可顯示字元

unicode同樣原理,只是字元多很多。

就醬,偉大的程式猿發明了與機器交流的方法,踏入了新時代~

另外,0x幾幾是表示十六進製制,為了不與十進位制搞混(例如十進位制的10和十六進製制的10是不同的),類似的,0b幾幾就表示二進位制。十六進製制的存在是為了解決二進位制太長的問題,而且它又正好是2的4次方。

我們知道字元的』1』其實並不是1,那麼-1在計算機中又是怎麼表示的呢?這就要講到原碼、反碼和補碼了。為了表示正負,二進位制中犧牲了最高位(也就是最左邊的一位)的一位空間。若是正數符號位置0,負數則置1。於是+2是0010(假設用4bit來表示),-2是1010,這就是我們的原碼。但是咱們的計算機只會加法,減法要怎麼實現呢?於是出現了反碼補碼。把乙個負數除了符號位的其它位取反,就是反碼;把反碼再+1,就是補碼了(正數反碼、補碼與原碼一樣)。

補碼有啥好處呢?在做減法的時候,只要兩個數的補碼相加就實現了。數學上的原理——csdn。

如果不考慮正負,就是無符號數。由於多了一位符號位,它能表示的最大數值就大了一倍。

既然位數有限,那麼能表示的最大/最小數就有限(你可以算算8bit最大/最小能表示幾),就需要考慮溢位。例如你在4bit下要用0111加0001,變成1000,咦?正數加正數變成負數了?這就是溢位。

lipo 是做什麼的

lipo create release iphoneos libiphone.a debig iphonesimulator libiphone.a output libiphone.a 看到這樣的命令列,你會怎樣理解呢。很簡單,我將模擬器和裝置的靜態庫檔案合併成乙個檔案輸出了,以後在發布可以庫的時...

他是做什麼的?

他是做什麼的?楓華網路從默默無聞到現在這樣默默地火了。我每天都在瘋狂地為客戶建立著檔案,安排課程培訓時間,協助新客戶付款。客戶都自覺自願地在這裡預約,排隊,毫無怨言。我顧不上整理客戶案例,顧不上寫成我的心聲,顧不上出門旅遊。太多的時候,我想登高而呼,可是單子紛沓而至,我顧不上。今天,這個風和日麗的週...

eval 是做什麼的?

把字串引數解析成js 並執行,並返回執行的結果 例如 1 eval 2 3 執行加運算,並返回運算值。2 eval varage 10 宣告乙個age變數 例如1 functiona a console.log x 輸出1 應該避免使用eval,不安全,非常耗效能 2次,一次解析成js語句,一次執行...