假設x = 2, y = 3; x + y = ?; 從cpu的角度,他是怎樣計算的呢
第1步:把2和3進行異或操作 得到結果 0001存放到某處
0010
^0011
-----------
0001
第2步:再把2和3進行與操作 得到結果 0010
0010
&0011
-----
0010
再把0010左移1位得到0100, 判斷移位後的結果是否為0, 如果為為,則前邊異或所得的結果就是最終結果,如果不為0
則把前邊異或得得結果,和後邊與運算並左移一位的結果 再次執行異或操作
第3步:把0001和0100進行異或 得到結果0101
0001
^0100
-----
0101
第4步 再把0001和0100進行一次與運算
0001
&0100
-----
0000
得到結果為0000, 0000 << 1 結果仍為0, 所以2+3所得最終結果為0101 轉成10進製為5
那麼2 - 3呢?
2轉換成2進製為 0010
-3轉換成2進製為1101
0010
^1101
-----
1111 2
0010
&1101
-----
0000
0000 << 1 結果還為0, 所以最終結果為1111作為有符號數,1111轉換成10進製就是-1 結果正確
結論:說明計算機會把我們人類所熟知的各種運算,轉換成不同的位運算, 我們所會的加減乘除他都是不會的。但都通過位運算的變形來實現
感謝計算機科學家和數學家們所做出的努力。讓我們得以享受今年資訊科技的果實。既然成為不了計算機科學家,那就讓我們站在他們的肩膀
上吧!
計算機是怎麼工作的?
試驗題目 計算機是怎麼樣工作的?實驗環境 ubuntu 9.10 實驗內容和步驟 在linux下c 經過預處理,編譯成彙編 彙編成目標 和鏈結成 elf可執行檔案,依次生成 cpp s o elf 檔案,下面通過 example.c 觀察其過程 1 預處理 gcc e o example.cpp e...
複習計算機基礎(cpu是重點)
回顧一下計算機基礎知識 按重點 一 cpu 包括控制單元 算術邏輯單元和記憶單元等 1.1 cpu包含 alu 算術邏輯單元 cache 高速緩衝處理器 bus 匯流排 cpu 處理器 是整台機器的核心,是乙個具有特定功能的晶元,裡頭含有微指令集,如果你先剛主機進行什麼特異功能,就得要參考cpu是否...
計算機CPU效能的度量
我們在使用計算機,或者編寫程式時,都希望通過一定的引數去度量計算機或者程式的效能。時間常用來度量計算機效能。完成任務所需時間越少,計算機越快。這是我們期望看到的。時間是唯一能夠被完全可靠測量的計算機效能指標。我們都知道計算機中乙個重要的效能指標 主頻,又叫時鐘頻率,單位一般是hz。若一台計算機的主頻...