《深入理解電腦系統》2.1資訊儲存

來源:互聯網
上載者:User

標籤:

資訊儲存

 機器級程式將儲存空間視為一個非常大的位元組數組稱為虛擬儲存空間,儲存空間的每個位元組都由一個唯一的數字來標識,稱為它的地址,所有可能的地址的集合稱為虛擬位址空間這個虛擬位址空間只是一個展現給機器級程式的概念性映像。實際的實現是將隨機訪問儲存空間(RAM)、磁碟儲存空間、特殊硬體和作業系統軟體結合起來,為程式提供一個看上去統一的位元組數組。 進位轉換10轉16 該方法僅對十進位的2的整次數冪 比如十進位512,為2^9。把9寫成1*i+4*j,即1*1+4*2。即其16進位為2開頭後跟2個零。 

 其他有關進位轉換的方法不詳細介紹僅用案例說明下列圖來源某培訓機構任意進位轉十進位十進位轉任意進位8421碼 反碼,補碼,原碼   

 

 字每台電腦都有一個字長,指明整數和指標資料的標稱大小。大多數電腦的字長是32位,那麼它有2∧32種地址大概剛超過4GB大小,即它的虛擬位址空間最大這麼多。 資料大小許多機器能處理單位元組,2,4,8位元組(64位)。對於32位機器他會把64位元據處理成一系列32位操作的代碼。程式員應該力圖使他們的程式在不同的機器和編譯器上是可移植的,比如聲明一個int(32位大小)類型的程式對象能被用來儲存一個指標,但是在一台64位機子運行該程式可能出問題 定址和位元組順序對於跨越多位元組的程式對象,我們必須建立兩個規則:
  1. 這個對象的地址是什麼
  2. 在儲存器中如何排列這些位元組
 地址是什麼幾乎所有機器,對象的地址為所使用位元組最小的地址,例如:一個int類型資料有四個位元組地址分別為0x001,0x002,0x003,0x004,那麼這個int資料的地址為0x001。 如何排列大端和小端儲存(注意是資料存放區!非地址)小端儲存:機器在儲存空間中按照最低有效位元組到最高有效位元組的順序儲存物件,也就是說最低有效位元組在前面,Intel的機器就是這樣大端儲存:機器按照最高有效位元組到最低有效位元組的順序儲存物件例如:有一int類型資料,其地址為0x100,其儲存的16進位資料為0x01234567(16進位每兩個數字用1位元組儲存,01是高位元組,67是低位元組)
 通常機器所使用的位元組順序是不可見的但是有時,位元組順序可能成為問題1,在不同類型的機器之間通過網路傳輸位元據時,小端法機器產生的資料到大端法的機器變成反序的.為了避免這個問題,代碼編寫必須遵守位元組順序的規則2,閱讀整數資料的位元組序列時位元組順序也很重要3,當編寫規避正常的類型系統的程式時。(強制類型轉換)  布爾代數 位向量:有固定長度為w,由0和1組成的串&~取反|^&對|有分配律:a&(b|c)=(a&b)|(a&c)|對&也有分配律:a|(b&c)=(a|b)&(a|c) 位向量可用於表示有限集合。我們可以用位向量[aw1,.....,a1,a0]編碼任何子集A∈{0,1,....,w-1}其中ai=1若且唯若i∈A。例如,(記住我們是記aw-I寫在左邊,而將a0寫在右邊,即寫的方向相反),位向量a=[01101001](最後一位為1,說明集合中有0,倒數第4為1,說名集合有3)表示集合A={0,3,5,6},而b=[01010101]表示集合B={0,2,4,6} 這樣我們可以用|,&對應並,交,對集合操作。比如a&b=[01000001],A交B={0,6}。 位元運算 掩碼運算先有一個掩碼比如0xFF,這個掩碼可以認為是一個8位的二進位,且每位都是1現在有一個16進位數AA&0xFF,這個運算式的意思是,A變成二進位保留最後8位的值,前面的都變成0,實際是把二進位的每位對應地做布爾運算.  C語言的邏輯運算邏輯運算中TRUE為任意非零,FALSE為0 Expression     Result!0x41          0x00!0x00          0x01!!0x41         0x010x69 && 0x55   0x010x69 || 0x55   0x01 C語言位移運算一般機器支援兩種右移運算:邏輯右移:向右移動,丟棄右端,左端補0算數右移:向右移動,丟棄右端,左端補最高有效位的值         比如[01100011]>>4 結果是[00000110]              [10010101]>>4 結果是[11111001]//紅色1是最高有效位 注意對於無符號資料必須用邏輯右移對於有符號資料,兩個都可以,但這樣存在可移植性問題,然而幾乎所有機器用的是算數右移Java中X>>k是算數右移,X>>>k是邏輯右移對於w位的數字,對他位移k位,其最終位移量是k mod w,C語言用這種方法規避大數位位移量 位移運算的優先順序不用管那麼多加括弧就好        

《深入理解電腦系統》2.1資訊儲存

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.