計算機系統基礎 學習記錄3

2021-10-09 23:32:48 字數 1463 閱讀 8739

捨入方式

1、向零捨入。例如:-2.1捨入到-2,3.4捨入到3

2、向下(負無窮)捨入

3、向上(正無窮)捨入

4、向偶數捨入(向離自己最近的整數捨入,靠兩個整數的中間時,向偶數捨入)

經過證明可以得到,向偶數捨入的方式誤差最小,因此採用此種方式

二進位制的捨入

在二進位制的捨入中,如果將要被捨去的首位達到了1,則表明需要捨去的那一部分的值正好達到了所需要精確到的最末位的權重的一半。而捨入後的最後一位總是0,因為這樣才能保證捨入到了偶數,如圖1所示:

圖1運算步驟

第一步:對階

在手動計算中,有高階變低階和低階變高階的兩種形式,但機器只能選擇其中一種。實際上,機器選擇了小階向大階看齊,這樣能夠保留高位小數字(右移丟掉的是低有效數字位)

第二步:尾數相加

帶上整數部分的1

加完後的結果必須是規格化的

第三步:規格化

相加後最高位進製/退位:需要移位

第四步:判斷溢位

溢位只會在階碼出現

第五步:捨入

共有五步,步驟較為繁瑣,實際上,主處理器無法完成浮點數的運算,會使用協處理器完成。因此,浮點數運算耗時長,在程式設計中應盡量少用浮點數乘法

浮點數加法的數學特性:阿貝爾群

浮點數的括號不能隨便寫,否則容易出現誤差

和十進位制數的運算規律相同:階碼相加,尾數相乘。

值得注意的是,階碼相加時,需要減去偏積(bias)

浮點數乘法的數學特性:交換環具有單精度和雙精度,和ieee的標準完全一致

具有強制轉換的功能

int,float,double轉換規律

double/float→

\rightarrow

→int:截斷frac部分,向零捨入。其中,超出範圍或出現非數時,一般會被設定為tmin

int→

\rightarrow

→double:數值上不會超出範圍,並且能夠完美地被轉換(不產生誤差),因為double的frac部分有53-bits,超過了int型的31-bits

int→

\rightarrow

→float:數值上不會超出範圍,但會產生誤差,因為float的frac部分占用的位元組比int型的少

每乙個架構都有自己的彙編,此處基於intel架構

架構(architecture):用於正確理解機器語言及組合語言,屬於處理器設計的一部分

架構的實現,稱之為微架構

機器**:0/1**

彙編**:助記形式

cpu的組成:

1、alu:算術、邏輯運算單元

2、cu:**控制單元

3、暫存器:有非常多,放在不同的位置,有不同的用途

pc:專用暫存器,裡面存了下一條要執行指令的位址(永遠指向下一條要執行的指令)。從pc裡面得到位址,位址通過位址匯流排(pc和主存通過匯流排(bus)相連)送給memory,根據此位址在memory中相應的單元去找指令,將指令送給cpu

計算機系統基礎

includeint main return 0 如果將表示式換成 2147483647 1 2147483647 結果又會怎麼樣呢 編譯器如何處理字面量 高階語言中運算規則 高階語言與指令之間的對應 機器指令的執行過程 機器級資料的表示和運算 sum int a unsigned int len ...

計算機系統基礎 學習開篇

title 計算機系統基礎 學習開篇 author qian jipeng tags 作為乙個非科班出身的半吊子程式設計師 程式設計師?在和計算機專業的同學交流的過程中,切實感受到知識面的匱乏,總體體現在對計算機系統的理解。確實,作為一名雙非院校信管專業的學生,本身起步就比別人慢了不少,若沒有紮實的...

計算機系統概論基礎

1 第一代計算機採用的是電子管 第二代計算機採用的是電晶體 第三代計算機採用的是中小規模積體電路 計算機採用的是大規模 超大規模積體電路。2 計算機系統有硬體系統和軟體系統構成 3 計算機系統的三個層次結構由內到外分別是硬體系統 軟體系統和應用軟體。在硬體之外的所有層次統稱為虛擬機器。4 cpu 儲...