計算機系統第一部分導讀

2021-09-01 05:39:29 字數 2019 閱讀 4609

2.2 整數表示

2.24有符號數與無符號數之間的轉換

2.26拓展乙個數字的位表示(short->long)

2.3 整數的加法

2.4 浮點數

2.44 捨入

什麼是大端法呢,就是把最高有效位元組排在前面,對於int x,&x為0x100;

x所存的值為0x01234567

那麼我們是如何儲存x的值的呢?

答案是0x100->01 0x101->23

0x102->45 0x103->67

2.小端法

對於小端法,我們就不再敘述,因為他與大端法是相反的,他是把最低有效位元組排在前面

需要注意的是,移位運算的優先順序甚至沒有加法高

數值可能會變,但位模式不變change the translation way of the bites!

轉換的時候,加減的是2w

無符號數加法x+y=

x+y(x+y<2w)

x+y-2w(else)

無符號數取反-u

wx=x(x==0)

2w-x(x>0)

如何判斷無符號數加法的溢位?

與無符號數加法不同,補碼的加法還有負溢位的情況

x+y

x+y(不溢位)

x+y-2w(正溢位)

x+y+2w(負溢位)

我們認為,補碼乘法與無符號乘法的位級表示是一樣的,

因此,我們只需要把一開始作乘法的兩個運算元理解為無符號數乘法,然後再把結果由無符號數轉換為補碼即可。

許多編譯器意識到了這個問題,例如:對於x*14=(x<<3)+(x<<2)+(x<<1)來解決這個問題

然而我們如果只是簡單地通過算術右移來得到結果,在被除數為非負數地時候,總是對的,但是如果是負數,我們右移地時候丟棄了一部分權值,使得結果變得更小了,顯然不正確

例如11001100>>4=111111001100 ,我們可以看到,因為我們刪除了一部分權值為正數的位,導致了整個數變小了,我們應該如何解決這一問題?

偏置量我們從書上可以得知

(x+(1<>k
這一**可以用來計算x/2k,且這一計算值是精確的,前提是我們加了乙個bias==(1《通過計算,bias=2w-1

小數的二進位制表示法只能表示那些能夠被寫成x*2y的數,其他的數只能近似地表示。

其中

將浮點數的位表示劃分為三個字段,分別對這些值進行編碼:

乙個單獨的符號位s來編碼符號s

k位的階碼字段exp=ek-1…e1e0根據一些規則編碼階碼e

n位小數字段frac=fn-1…f1f0根據一些規則來編碼尾數m

那麼規則是什麼呢?

一、 規格化的值

s≠0&&≠255

f這是最普遍的情況,只要exp的位不是極端。

e=e-bias,其中bias=2k-1-1(單精度f為127,雙精度double為1023)

m=1+f,有時,我們也叫這種方式為隱含的以1開頭表示,因為我們的e總不為0,所以我們總是能夠調整階碼,使得m位於(1,2)之間,因此,我們不妨省一位,把開頭的1放在外面當作已知。

二、非規格化的s0

0000

000f

e=1-bias至於為什麼不是0-bias,請思考浮點數的連續性

m=f因為表示方法限制了浮點數的範圍和精度,我們只能用近似的浮點數運算來表示實數的運算,那麼我們要用一種系統的方法,來完成這個「近似」。

這裡的e表示的是乙個非常小的正數。 ↩︎

Axure RP 第一部分

axure rp是乙個專業的快速原型設計工具。axure 發音 ack sure 代表美國axure公司 rp則是rapid prototyping 快速原型 的縮寫。axure rp是美國axure software solution公司旗艦產品,是乙個專業的快速原型設計工具,讓負責定義需求和規格...

計算機二級Python筆記 第一部分

2018 08 05 09 03 python程式的組成 結構及書寫規則 python的基本資料型別 python基本運算型別 結構和語句 python的特徵資料型別及操作 檔案操作 函式與模組 物件導向設計 2018 08 05 09 09 python的起源 創始人guido vanrossum...

第一部分 初識Solr

第一章 solr簡介 這章主要包括內容 這本書講述nosql技術,apache solr 像它的非關係模式兄弟一樣,針對於某些問題進行了優化。特別的,solr在處理企業級大量資料 及時搜尋 文字資料 返回相關性結果等方面進行了很大優化。這裡說的只是冰山一角,讓我們從下面幾方面來進行詳細敘說 solr...