挑戰408——組成原理(7)——數據的表示及其運算刷題(1)

本節的內容:數據的表示和運算
參考資料:408真題
涉及的知識點:

  1. 數的補碼,原碼,移碼錶示
  2. 二進制與16進制
  3. 強制類型轉換
  4. 定點數及其加減運算
  5. 浮點數及其加減運算

補充知識

大端對齊與小端對齊

大端對齊模式,是指一個字節中的高位字節放在這個字區域內的低地址處。
小端對齊模式,是指一個字節中的低位字節放在這個字區域內的低地址處。(最常用
將一個32位的16進制數0x12345678存放在內存中(機器按字節編址
在這裏插入圖片描述
實際上,小端模式就是從後面往前面存儲的。

常用的進制轉換數及一些技巧

127 = 7FH = 0111 1111B
128 = 80H = 1000 0000B
255 = FFH = 1111 1111B
65535 = FFFFH = 1111 1111 1111 1111B

算大的數可以用16進制數方便計算,十進制轉二進制也可以轉換爲16進制再轉換爲2進制。

按邊界對齊

按邊界對齊?簡單的說,對於int型而言,起始地址爲4的倍數;對於char類型而言,起始地址爲任意字節皆可;對於short類型而言,起始地址爲2的倍數;對於結構體而言,對齊方式爲結構體內類型最大的字節量。

強制類型轉換

第一道題
在這裏插入圖片描述
分析
算式顯然是 int = int +short 類型,一定存在強制類型轉換,那麼short ->int 需要添加擴展位,注意,機器中的數用補碼錶示的,所以結果用補碼運算。過程如下:
圖中虛線左邊的是16進制數,右邊是2進制數,由於答案是16進制數,我們便化爲16進制數進行加減。
同時,特別注意,負數的補碼,是除了符號位以外取反後加
一,正數的補碼等於原碼等於反碼

考點:強制類型轉換,碼制間的轉換運算

在這裏插入圖片描述

第二道題
在這裏插入圖片描述

分析:短字節向長字節的轉換,高位的擴展位變爲對應的符號位。
在這裏插入圖片描述

第三道題
在這裏插入圖片描述
分析:無符號與有符號之間的相互轉換,主要看對符號位的解釋,將符號位當成符號就是有符號數,當成真值解釋就是無符號數。機器中用補碼錶示數。
在這裏插入圖片描述

定點數基本運算及存儲方式

第一道題
在這裏插入圖片描述
分析
這是一道表面考定點數補碼的乘法的問題,但是學過的都知道,乘法的計算太囉嗦了,而且要記憶的東西步驟也極爲麻煩,所以出在考試大題不大可能,出現在選擇題更不可能,而這個題目,一開始就讓我們計算四個數分別相乘的組合。老老實實做,那麼做完你也應該快考完了。所以換個角度,直接判斷是否溢出,將它們化爲10進制真值,用結果看看能不能用8位表示。說白了還是考碼制之間的轉換。

考點 :碼制間的轉換與運算,溢出判斷

解答;
在這裏插入圖片描述

第二道題
在這裏插入圖片描述
分析:關鍵詞按字節編址按邊界對齊小端方式。我們知道int是佔用4個字節的,char1個字節,short爲2個字節,加起來要7個字節,但是實際上是8個。因爲它按邊界對齊。我們注意到,按順序short應該到D,但是D = 13,不是2的倍數,所以從E開始存儲。
所以過程如下:
在這裏插入圖片描述

第四道題
在這裏插入圖片描述
分析:如果直接死腦筋算的話,很是麻煩,看看有沒有好的辦法,二進制數對2的乘除,就是移位操作,乘上一個2,左移。除去一個2,右移。實在忘記了,就舉個10進制的例子:
2 X 10 = 20 //相當於將2左移一位
20/10 = 2 //相當於把20右移了一位。這樣就好辦了:
在這裏插入圖片描述

再來兩道一模一樣的真題:
在這裏插入圖片描述
在這裏插入圖片描述
用上面的方法做,原理都是一樣的,答案分別爲 C A

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