概述
計算機的應用領域及其廣泛,不論在哪一領域,計算機本質上都是處理資訊的工具,要了解計算機的工作原理,首先要明白計算機中資訊的表示和儲存方法。計算機中的資訊型別很多,總體上可分為兩大類:一類是計算機處理的物件,即資料資訊;一類是用於控制計算機工作的資訊,即指令。
關於數值型資料,首先解決的問題是資料在計算機內部的儲存。無論何種資訊,在計算機內部的形式實質上都是一致的,均是0和1組成的各種編碼:資料在計算機中的儲存和處理方式和人類的大腦對資料的儲存和處理方式有非常大的差別。人類大腦記錄數值資料採用的是十進位制的方式(即逢十進一)。事實上,世界不同角落的人類祖先計數時使用的計數方式各有不同,除了十進位制之外,還有用五進製、二十進位制等方式。其中十進位制是使用最為普遍的一種進製。而計算機中使用一種辦法來表示某一位數是0~9之間的數字是非常困難的。然而,可以找到一種很簡單的方法來表示某一位數是0或1之間的某一數字:高電平表示1,低電平表示0,抑或相反,即二進位制的表示。在計算機中,我們使用二進位制方式實現了不同型別的數值資料的儲存和處理。使用二進位制來編碼和處理計算機中不同型別的資料。
解決了計算機內部資料儲存的問題後,會產生另外乙個問題:程式設計師進行程式編寫的時候,很多地方就需要對二進位制數進行處理。然而,十進位制更符合我們的習慣,卻很難與計算機結構直接關聯。對於二進位制數,雖然計算機可以處理,但是人對二進位制的處理是很費力的。有沒有辦法可以使程式設計師能夠方便的進行資料處理的程式編碼?我們可以在二進位制和十進位制之間在引入十六進製制數或八進位制數。十六進製制數或八進位制數相比二進位制數,更方便程式設計師對資料的處理,又可以很方便的轉換為二進位制數。所以引入十六進製制或八進位制數作為過渡,能較好的解決人與計算機之間的溝通問題。
計算機的核心功能是具有運算能力,不同型別的數值資料在計算機中的四則運算的實現也是重點,包括定點數和浮點數的加減乘除四則遠算的實現。
我們知道,資料在傳輸的過程中,是存在一定的誤位元速率的;儲存過程中,由於儲存介質的損壞等原因,也不能保證所有資料讀出時是完全正確的。這就需要一種手段,檢查我們拿到的資料是否正確。這就是資料校驗。通俗的說,資料校驗就是為保證資料的完整性,用一種指定的演算法對原始資料計算出乙個校驗值,校驗值會附加在原始資料前或後,一併交給資料的接收方。接收方用同樣的演算法計算一次校驗值,如果和隨資料提供的校驗值一樣,說明資料是完整的;否則,說明資料出現錯誤。
負數在計算機中的表示
今天,老大讓我調查乙個浮點數轉換為整數的問題。自己就查了些資料,順便複習一下原碼 反碼和補碼。原碼 將乙個整數,轉換成二進位制,就是其原碼。如單位元組的5的原碼為 0000 0101 5的原碼為1000 0101。反碼 正數的反碼就是其原碼 負數的反碼是將原碼中,除符號位以外,每一位取反。如單位元組...
負數在計算機中的表示
原碼 將乙個整數,轉換成二進位制,就是其原碼。如單位元組的5的原碼為 0000 0101 5的原碼為1000 0101。反碼 正數的反碼就是其原碼 負數的反碼是將原碼中,除符號位以外,每一位取反。如單位元組的5的反碼為 0000 0101 5的原碼為1111 1010。補碼 正數的補碼就是其原碼 負...
小數在計算機中的表示
執行如下 得到結果 你猜是多少呢?嗯你沒有看錯得到的答案是57.所以為什麼會出現這種情況呢?首先需要 的是0.58這個數字是如何在計算機中儲存的。我們一般用下面格式表示浮點數。sp m 其中s是符號位,p是階碼,m是尾數。單精度浮點數是32位,雙精度浮點數是64位。s pm表示公式 偏移量1823 ...