本節書摘來自華章計算機《計算機系統:核心概念及軟硬體實作(原書第4版)》一書中的第3章,第3.7節,作者:[美] j. 斯坦利·沃法德(j. stanley warford)著, 更多章節内容可以通路雲栖社群“華章計算機”公衆号檢視。
二進制數隻可能是兩個數值之一。在機器層上,計算機以二進制形式存儲資訊。位是二進制數字,不是0就是1。非負整數使用無符号二進制表示。最右位是1的位置,它左邊的一位是2的位置,再左邊一位是4的位置,以此類推,每左邊一位的位置值都是前一位位置值的兩倍。有符号整數采用補碼表示,其中第一位是符号位,剩餘的位決定該數的數值大小。對于正數來說,補碼表示與無符号表示相同;而對于負數來說,它的補碼可以通過對應正數的反碼加1得到。
每個二進制整數,無論有符号還是無符号,都有表數範圍,這是由記憶體單元的位數決定的。單元的位數越小,表數範圍就越有限。進位位c用來辨別無符号整數是否超出表數範圍,而溢出位v用來辨別補碼表示的數是否超出表數範圍。二進制整數的運算包括add、and、or和not。asl表示算術左移,實際上是對一個二進制值乘以2;而asr表示算術右移,是對一個二進制數除以2。
十六進制數系統,基數為16,提供了一種簡潔的表示位模式的方法。十六進制的16個數字是0、1、2、3、4、5、6、7、8、9、a、b、c、d、e和f。一個十六進制數字表示4位。美國資訊交換标準代碼,簡稱ascii,是一種存儲字元的常見編碼方式。它是一種7位編碼,可以表示128個字元,包括英語字母表的大小寫字母、十進制數字、标點符号和不可列印的控制字元。
浮點數的存儲單元包括3個字段:1位的符号字段、指數字段和尾數字段。除了特殊數值外,數字以二進制科學計數法方式存儲,二進制小數點左邊的隐藏位假定為1。指數以餘碼方式存儲。4個特殊值是零、無窮大、nan和非規格化數。ieee 754标準将指數和尾數字段的位數定義為單精度8位和23位,雙精度11和52位。
各個抽象層次的基本問題是待處理資訊的形式與表達它的語言之間的不比對。機器語言書寫的程式處理位,進階語言書寫的程式處理數字和記錄這樣的對象。無論程式寫在哪個層次上,資訊必須裝進某種語言能夠識别的形式中。将資訊和語言進行比對是所有抽象層次上的基本問題,是解決問題的模組化過程中近似産生的根源。