深入理解計算機操作系統(2.2.7)

截斷數字

無符號數截斷

當一個w位的數截斷位一個k位的數時,我們會丟掉w-k位。簡單說就是截斷幾位就從最高位開始去掉幾位。
原理:
這裏寫圖片描述

舉例:
101111(47)截斷兩位,那麼截斷後的二進制爲1111。
47%2^4 = 15,也就是1111。

補碼數截斷

原理:
這裏寫圖片描述
當把一個數x截斷爲k位時,步驟:

  1. x mod 2^k。
  2. 用補碼解釋二進制數。

舉例:將x=53191從int類型轉爲short類型 。
53191的二進制數表示爲00000000 00000000 10110101 0010111,截斷爲16位之後爲10110101 0010111,再將16位二進制數用補碼解釋,也就是把無碼數轉爲不碼數,因爲無符號數10110101 0010111表示的值53191>2^15-1(short類型所能表示的最大正數),所以補碼數表示爲53191-65536 = -12345。

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