科学计算机二进制算法,计算机是怎么理解二进制的?
計(jì)算機(jī)是怎么理解二進(jìn)制的?
計(jì)算機(jī)的發(fā)明最初純粹是為了計(jì)算數(shù)字, 讓一個(gè)機(jī)器能夠通過(guò)輸入不同的數(shù)字, 進(jìn)行加減乘除等. 首先要約定好機(jī)器能處理的數(shù)是什么樣的, 即輸入是什么樣的, 才能去制造計(jì)算機(jī). 二進(jìn)制只是一種嘗試, 十進(jìn)制也有科學(xué)家嘗試過(guò), 但由于復(fù)雜程度較二進(jìn)制要高被二進(jìn)制淘汰了. 比如5個(gè)二進(jìn)制數(shù)既是最大到十進(jìn)制31. 數(shù)能表示了, 操作怎么表示呢? 同樣, 因?yàn)樾枰M(jìn)行的操作總是有限的, 比如用一個(gè)3位二進(jìn)制數(shù)表示, 那么就相當(dāng)于計(jì)算機(jī)最大可以有8種不同操作.
好了, 帶著這種思路, 我們來(lái)組合一下, 一個(gè)16位輸入的機(jī)器(這里先不討論16位是怎么來(lái)的), 最大支持4種操作, 占了兩位二進(jìn)制. 帶兩個(gè)操作數(shù), 那么操作數(shù)就是7位一個(gè), 最大的數(shù)就是127. 我們暫時(shí)把這個(gè)16位二進(jìn)制數(shù)叫做指令. 這樣只需要把要指令放在輸入端, 等待計(jì)算機(jī)計(jì)算, 再?gòu)妮敵龆四贸鼋Y(jié)果就算完成了一次計(jì)算. 而這個(gè)指令的物理制作方法, 在最初階段可能是一些帶小孔的木板, 或一張紙, 到現(xiàn)在的硬盤(pán)! 這個(gè)過(guò)程就是存儲(chǔ)介質(zhì)的進(jìn)化.
計(jì)算是能計(jì)算了, 可有時(shí)候又變的特別麻煩. 假如我們想要加十個(gè)數(shù), 依次加起來(lái), 那么按這個(gè)方法只能先加前兩個(gè)數(shù), 把結(jié)果取出來(lái), 再與第三個(gè)數(shù)相加, 依次類(lèi)推, 考慮到指令再物理上的制作水平不高, 這樣的結(jié)果就是計(jì)算一次, 花相對(duì)長(zhǎng)的時(shí)間制作第二個(gè)指令, 再加一次, 這樣的機(jī)器顯然是不能讓科學(xué)家滿(mǎn)意的.
于是大家想能不能讓一個(gè)操作的結(jié)果保存在計(jì)算機(jī)里面, 下一條指令就變成讓那個(gè)結(jié)果與第二個(gè)數(shù)據(jù)相加, 這樣后面的指令就可以不用等前一次的結(jié)果出來(lái)事先制作好. 后來(lái)大家管這個(gè)能存儲(chǔ)的位置叫做寄存器. 有了寄存器, 后面的指令不一樣的只是第二個(gè)數(shù)據(jù). 但是增加的操作讓操作位需要多一些, 16位指令的分配變成了這樣.
這時(shí)候計(jì)算機(jī)的利用效率就高了許多, 但是數(shù)據(jù)的位數(shù)(最高只有5位數(shù)據(jù)了)卻不讓人滿(mǎn)意.
既然有寄存器, 何不多放幾個(gè)寄存器, 數(shù)據(jù)全部放在寄存器里, 指令里面原來(lái)直接表示數(shù)據(jù)的位來(lái)指示第一跟第二個(gè)數(shù)據(jù)都在哪個(gè)寄存器里. 一個(gè)16位的寄存器假設(shè)有11位表示數(shù)據(jù), 計(jì)算能力都是質(zhì)的飛越啊! 問(wèn)題是怎么表示把數(shù)據(jù)載入到寄存器里呢? 這時(shí)候指令的結(jié)構(gòu)就變成了: 操作, 寄存器選擇, 要裝載的數(shù)據(jù).
有了這個(gè)指令, 裝載數(shù)據(jù)跟進(jìn)行具體操作的指令就已經(jīng)分開(kāi)了, 而后者又變成了現(xiàn)在這樣.
時(shí)間久了, 人們發(fā)現(xiàn)者仍然有改進(jìn)的地方, 于是越來(lái)越多種類(lèi)的操作, 各種各樣的指令被發(fā)明出來(lái), 后來(lái)有人稱(chēng)之為指令集架構(gòu)(Instruction Set Architecture), 指令集一方面代表著設(shè)計(jì)計(jì)算機(jī)處理器的方法, 也代表著能在這種指令集上運(yùn)行的二進(jìn)制的規(guī)則, 這也就是為什么我們常說(shuō)在x86上運(yùn)行的程序想要在ARM上運(yùn)行都需要重新編譯.
等等, 似乎跑題了? 計(jì)算機(jī)到底是怎么理解一個(gè)16位指令哪個(gè)部分都代表什么? 操作是怎么進(jìn)行的? 計(jì)算機(jī)或者說(shuō)處理器的結(jié)構(gòu)以及實(shí)現(xiàn)是怎么樣的?
未完待續(xù)
總結(jié)
以上是生活随笔為你收集整理的科学计算机二进制算法,计算机是怎么理解二进制的?的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 如何用python写html的插件,使用
- 下一篇: 限制 计算机中 某用户上网 win7,W