計算機的資訊儲存和處理都是以二進位制為基礎的,通過一系列的0,1
組合,我們能夠去表示有限的整數和實數。
首先了解三種重要的符號表示方法:
有符號表示:用於表示大於或等於0的整數
無符號表示:用於表示有正有負的整數
浮點數:以科學計數法為基礎的二進位制表示方法
在計算機內部資料是按照字進行儲存的,字有著統一的虛擬位址空間位址,計算機按照指定位址對資料進行讀取和寫入操作。
字通常為8位,也就是說可以表示無符號的0x00-oxff。而關於計算機能夠進行定址的空間大小通常由「字長」表示,我們常說的32位系統,意思是指字長為32位,也就是說其虛擬位址空間大小為
2^32-1
。
另外值得注意的一點是不同機器間可能存在著資訊儲存順序上的差別:這種差別被稱為大端法和小端法。
大端法:乙個資料如果超過乙個字的表示範圍,由二個字以上表示時,則其位元組儲存順序為最高有效位元組在前。
小端法:則是最低有效位元組在前。
直觀的例子是:乙個int型變數,其十六進值為0x12345,位址範圍為0x100-0x103。則其在大端法計算機和小端法計算機中的儲存順序為:
大小端得叫法**於《格列佛遊記》裡面關於兩個派別關於吃雞蛋先打破那一端的爭論。
一般來說,程式設計師在編寫程式的時候,不必關心系統式如何儲存資料的。但是有時候,大小端的問題會顯露出來,這時候就需要額外的注意,否則會帶來程式的錯誤。尤其是在網路通訊中,由於網路中存在著各式各樣的機器,很有可能發生小端儲存的機器將資料傳送給大端儲存的機器,或者反之,這時候就會產生錯誤,因此在網路程式設計中,都需要首先將自身的資訊按照網路標準進行轉化,然後在進行傳送。
《深入理解計算機系統》讀書筆記
小端模式 低有效位元組在前,高有效位元組在後 代表處理器 intel 大端模式 高有效位元組在前,低有效位元組在後 代表處理器 ibm power sun c語言允許無符號整數與有符號整數之間的轉換,轉換規則是 底層的位保持不變 當執行乙個運算時,若兩個數乙個為無符號數,乙個是有符號數,則c語言隱式...
《深入理解計算機系統》讀書筆記
ip位址是乙個32為無符號整數,ip位址存放在ip位址結構體中 struct in addr tcp ip規定統一的網路位元組順序 大端位元組順序 因為主機位元組順序 host byte order 是小端法,所以必須有函式用於轉換。htonl函式和ntohl是32位整數,short是16位整數 i...
深入理解計算機系統讀書筆記
資訊就是位 上下文 系統的硬體組成1.匯流排 貫穿整個系統的是一組電子管道,稱作匯流排,它攜帶資訊位元組並負責在各個部件間傳遞。2.i o 裝置 i o 輸入 輸出 裝置是系統與外部世界的聯絡通道。一般系統都包括四個 i o 裝置 作為使用者輸入的鍵盤和滑鼠,作為使用者輸出的顯示器,以及用於長期儲存...