數據在計算機中的表示和運算

概述

計算機的應用領域及其廣泛,不論在哪一領域,計算機本質上都是處理信息的工具,要了解計算機的工作原理,首先要明白計算機中信息的表示和存儲方法。計算機中的信息類型很多,總體上可分爲兩大類:一類是計算機處理的對象,即數據信息;一類是用於控制計算機工作的信息,即指令。

其中數據信息又可以分爲數值型數據和非數值型數據兩類。數值型數據有確定的值,並可以在數軸上有對應的點,數值型數據的表示主要涉及以下幾個問題:選用何種進位方式(如十進制、二進制),機器中如何表示一個帶有符號的數(負數如何表示),如何表示小數點的位置,如何表示數值運算的基本實現原理等。非數值型數據信息如圖片、視頻、音頻文件中存儲的數據,都是以某種編碼方式存儲起來的,用於描述某種客觀事物如聲音、圖像等的數據信息。除此之外,還有一種數據是我們常用的,就是用於存儲和表達人類語言的字符。在計算機編程技術中,例如C語言,即把字符編碼當做一個整數來對待,甚至可以參與整數的四則運算。

關於數值型數據,首先解決的問題是數據在計算機內部的存儲。無論何種信息,在計算機內部的形式實質上都是一致的,均是0和1組成的各種編碼:數據在計算機中的存儲和處理方式和人類的大腦對數據的存儲和處理方式有非常大的差別。人類大腦記錄數值數據採用的是十進制的方式(即逢十進一)。事實上,世界不同角落的人類祖先計數時使用的計數方式各有不同,除了十進制之外,還有用五進制、二十進制等方式。其中十進制是使用最爲普遍的一種進位制。而計算機中使用一種辦法來表示某一位數是0~9之間的數字是非常困難的。然而,可以找到一種很簡單的方法來表示某一位數是0或1之間的某一數字:高電平表示1,低電平表示0,抑或相反,即二進制的表示。在計算機中,我們使用二進制方式實現了不同類型的數值數據的存儲和處理。使用二進制來編碼和處理計算機中不同類型的數據。

解決了計算機內部數據存儲的問題後,會產生另外一個問題:程序員進行程序編寫的時候,很多地方就需要對二進制數進行處理。然而,十進制更符合我們的習慣,卻很難與計算機結構直接關聯。對於二進制數,雖然計算機可以處理,但是人對二進制的處理是很費力的。有沒有辦法可以使程序員能夠方便的進行數據處理的程序編碼?我們可以在二進制和十進制之間在引入十六進制數或八進制數。十六進制數或八進制數相比二進制數,更方便程序員對數據的處理,又可以很方便的轉換爲二進制數。所以引入十六進制或八進制數作爲過渡,能較好的解決人與計算機之間的溝通問題。

計算機的核心功能是具有運算能力,不同類型的數值數據在計算機中的四則運算的實現也是重點,包括定點數和浮點數的加減乘除四則遠算的實現。

我們知道,數據在傳輸的過程中,是存在一定的誤碼率的;存儲過程中,由於存儲介質的損壞等原因,也不能保證所有數據讀出時是完全正確的。這就需要一種手段,檢查我們拿到的數據是否正確。這就是數據校驗。通俗的說,數據校驗就是爲保證數據的完整性,用一種指定的算法對原始數據計算出一個校驗值,校驗值會附加在原始數據前或後,一併交給數據的接收方。接收方用同樣的算法計算一次校驗值,如果和隨數據提供的校驗值一樣,說明數據是完整的;否則,說明數據出現錯誤。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章