愛伊米

C語言基礎:二進位制和計算機語言雜談(程式設計新手福利)

說計算機語言之前,先要說明計算機的工作原理。如果是最簡化的描述計算機,那麼它就是很多很多個開關。這些開關組合成了一些邏輯電路,很多很多個邏輯電路組合在一起就變成了計算機的處理器(CPU),在加上儲存裝置,輸入輸出裝置就變成一個現在的計算機的樣子了。因為計算機底層就是很多很多開關,如何用電來表示這些開關呢,其實有很多個方案,比如用固定的電壓表示開和關,比如220v表示開,12v表示關,但是電壓是很不穩定的,用電多了會降低,少了會升高,所以用具體電壓值表示開和關是很不方便的,人們採用了另外一種方案:電壓的高低。不用具體的數值,只用一個大致的範圍表示開和關,比如4-5v表示高電平,0v表示低電平,這樣就得到一個表示開和關的穩定的衡量標準了。

C語言基礎:二進位制和計算機語言雜談(程式設計新手福利)

密密麻麻的二進位制

正因為用電壓的高低可以穩定的表示開和關,所以計算機在計算機中只有兩個狀態來傳遞資訊,一個高電平,一個低電平,在計算機中,用1表示高電平,用0表示低電平。

所以,計算機世界中,只有0和1,其它的什麼都沒有。

C語言基礎:二進位制和計算機語言雜談(程式設計新手福利)

二進位制檔案

我們現實生活中用的是的十進位制,就是隻有0到9這十個數字,計算機只有0和1,它如何表示各種各樣的數字呢,這個時候,人們就定製了一個規則,就說這個規則全世界的計算機都要符合它。這個規則就是用1和0來表示十進位制數字,這種規則就叫做二進位制。

它確定了二進位制轉換十進位制的公式。

舉個例子,這是一串二進位制 100101

人們規定了它轉換成十進位制的方法:從右到左,依次從第0位開始,注意不是第1位,第0位是1,第1位是0,第二位是1,第三位是0,第四位是0,第五位是1,這樣數,然後怎麼算十進位制呢,每一位就是2的位數次方乘以這一位的值,然後相加,比如第五位是1,就是2的5次方乘以這一位,也就是2的5次方乘以1,等於32。

明白了二進位制是個什麼東西之後,下面我們就可以談計算機語言的發展了。

1。機器語言

計算機剛發明出來的時候,指令都是一些開關,用這些開關來給CPU輸入一些二進位制的指令,比如輸入

1110101表示一種指令,輸入110000又表示另外一種指令,沒錯,就是這麼萌,那個時候寫好的程式就是很多很多的0和1……

毫無疑問,這很不利於程式的編寫和修改,因此,更高階的組合語言出現啦!

C語言基礎:二進位制和計算機語言雜談(程式設計新手福利)

2。組合語言

組合語言就沒有很多的0和1了,而是用到了十六進位制和一些英文縮寫指令,比如

MOV A,13

ADD A,8

這就比1和0好看很多了,但還是不夠好,還是很難看懂的。

C語言基礎:二進位制和計算機語言雜談(程式設計新手福利)

3。高階語言

為了更方便編寫程式,高階語言便應運而生。

C語言就是一種高階語言,為什麼高階,因為見不到和硬體相關的東西了,都是很簡單的英文單詞來表示程式的含義了,比如C中的if——else語句,就是如果怎樣,否則怎樣的意思,至於它怎麼就變成了計算機CPU能運算的1、0,這個我們不用知道,C語言的編譯器就幫我們做了,所以說,確實是很高階的語言。

有興趣想了解更多的小夥伴可以關注我,後續我會介紹更多通俗易懂的知識,希望能夠幫助到你們。