關于定點數(shù)范圍這個問題很多朋友還不知道,今天小六來為大家解答以上的問題,現(xiàn)在讓我們一起來看看吧!
1、[編輯本段]定點數(shù) 【dìng diǎn shù 】 計算機中采用的一種數(shù)的表示方法。
2、參與運算的數(shù)的小數(shù)點位置固定不變。
3、 [編輯本段]1 定點數(shù)的表示 [編輯本段]1.1 無符號數(shù)的表示 指整個機器字長的全部二進制位均表示數(shù)值位,相當于數(shù)的絕對值。
4、若機器字長為n+1為,則數(shù)值表示為: X=X0X1X2...Xn 其中Xi={0,1}, 0<=i<=n 即X0*2^n + X1*2^(n-1) + X2*2^(n-2) + ... + Xn-1*2 + Xn 數(shù)值范圍是 0≤X≤2^(n+1) - 1 例如:1111表示15。
5、 [編輯本段]1.2 帶符號數(shù)的表示 最高位被用來表示符號位,而不再表示數(shù)值位。
6、 [編輯本段](1) 定點整數(shù) 小數(shù)點位固定在最后一位之后稱為定點整數(shù)。
7、若機器字長為n+1為,數(shù)值表示為: X=X0X1X2...Xn,其中Xi={0,1},0≤i≤n 即(-1)^X0 * (X1*2^(n-1) + X2*2^(n-2) + ... + Xn-1*2 + Xn) 數(shù)值范圍是 -(2^n-1)≤0≤2^n-1 例如:1111表示-7。
8、 [編輯本段](2) 定點小數(shù) 小數(shù)點固定在最高位之后稱為定點小數(shù)。
9、若機器字長為n+1為,數(shù)值表示為: X=X0.X1X2...Xn,其中Xi={0,1},0≤i≤n (這里X0不表示數(shù)字,只表示符號,若X0=0,則代表X=0.X1X2...Xn,X0=1,則代表-0.X1X2...Xn)。
10、 即 (-1)^X0 * (X1*2^(-1)) + X2*2^(-2) + ... + Xn-1*2^(-n+1) + Xn*2^(-n) 數(shù)值范圍是 -(1-2^(-n))≤X≤1-2^(-n) 例如:1111表示-0.875 (定點小數(shù)也被用在浮點數(shù)的尾數(shù)(Mantissa)部分) [編輯本段](3) 原碼表示 原碼是用機器數(shù)的最高一位代表符號,以下給位給出數(shù)值絕對值的表示方法。
11、其定義為: 整數(shù): [X]原=X (0≤ x<2^n) [X]原=2^n-X (-2^n 12、 例如:真值X=+1001,[X]原=01001;真值X=-1001,[X]原=10000-(-1001)=11001;真值X=-0.1001,[X]原=1-(-0.1001)=1.1001。 13、 原碼的性質: 1. 符號位+數(shù)的絕對值。 14、 2. 0有兩個編碼。 15、 3. 加減運算規(guī)則復雜,乘除運算規(guī)則簡單。 16、 4. 表示簡單,易于和真值之間進行轉換。 17、 原碼的運算: 加法: 先判斷符號位,若相同,絕對值相加,結果符號位不變;若不同,絕對值大的數(shù)減去絕對值小的數(shù),符號位和絕對值大的數(shù)相同。 18、 [X]原=00010,[Y]原=01010,X+Y=00000+1010+0010=01100;[X]原=10010,[Y]原=01010,X+Y=00000+1010-10=01000。 19、 減法: 將減數(shù)符號取反,然后將被減數(shù)和符號取反的減數(shù)相加。 20、 [X]原=10010,[Y]原=01010,X-Y=10010+11010=10000+0010+1010=11100。 21、 乘法(原碼一位乘): 是模擬豎式手算的方法。 22、引入一個值為部分積(初值為0)。 23、符號位是被乘數(shù)和乘數(shù)符號位的異或值。 24、之后檢視乘數(shù)(符號位以外)從低向高的每一位,若為1,部分積(對齊最高位)加被乘數(shù)(符號位以外),并右移一位;若為0,部分積加0,右移一位。 25、 例如:[X]原=11101,[Y]原=01011。 26、X*Y:符號位S=1⊕0=1 則X*Y=110001111。 27、 除法(交替加減法):符號位為被除數(shù)和除數(shù)符號位異或獲得。 28、之后被除數(shù)減除數(shù)(補碼表示),當余數(shù)為正時,商“1”,余數(shù)左移一位減除數(shù);當余數(shù)為負時,商“0”,余數(shù)左移一位,加除數(shù)。 29、 例如:[X]原 = 0.1001,[Y]補= 0.1011,X/Y: 除法 余數(shù)r0<0,商0 商0,r和q左移一位 加y 余數(shù)r1>0,商1 商1,r和q左移一位 減y 余數(shù)r2>0,商1 商1,r和q左移一位 減y 余數(shù)r3<0,商0 商0,r和q左移一位 加y 余數(shù)r4>0,商1 X/Y 的商 [Q]原 = 0.1101,余數(shù)[R]原 = 0.0001。 30、 [編輯本段](4) 補碼表示 補碼定義為: 整數(shù): [X]補=X (0≤X<2^n) [x]補=2^(n+1)+X (-2^n 31、 補碼的性質: 1. 機器數(shù)和真值的關系為: [X]補=2*符號位+X 2. [X]補和真值的關系:X=[X]補 - 2*X0=X0.X1X2...Xn - 2*X0=-X0 + 0.X1X2...Xn 3. 0有唯一的編碼。 32、 4. 兩數(shù)補碼加法,把符號位和數(shù)值位等同處理,結果的符號位與數(shù)值位都正確。 33、 5. 補碼數(shù)的算數(shù)移位 把[X]補的符號位和數(shù)值位一起右移一位并保持原符號位的值不變,可用來實現(xiàn)除法功能(除以2)。 34、 變形補碼,又稱模4補碼,把普通補碼由模2改為模4,其中雙符號位00代表正,11代表負,01上溢,10下溢。 35、 [編輯本段](5) 反碼表示 反碼是用機器數(shù)的最高位代表符號,數(shù)值位是對負數(shù)各位取反的表示方法,定義為: 整數(shù): [X]反=X (0≤X<2^n) [X]反=(2^(n+1)-1)+X (-2^n 36、 反碼的性質: 0有2個編碼。 37、 現(xiàn)在計算機中,較少使用反碼。 38、 [編輯本段](6) 移碼 移碼定位為: [X]移=2^n+X (-2^(-n)≤X<2^n) 當真值用補碼表示時,由于符號位和數(shù)值部分一起編碼,與習慣上的表示法不同,因此人們很難從補碼的形式上直接判斷其真值的大小。 39、 十進制數(shù)X=31,對應的二進制數(shù)為+11111,則[X]補=011111;十進制數(shù)X=-31,對應的二進制數(shù)為-11111,則[X]補=100001,看上去好像100001>011111,其實正好相反。 40、如果我們對每個真值加上一個2^n,X=11111加上2^5可得11111+100000=111111;X=-11111加上2^5可得-11111+100000=000001,這樣就可以直接通過二進制代碼比較大小。 41、 移碼的性質: 1. 最高位為符號位。 42、 2. 0有唯一編碼。 43、 3. 保持了數(shù)據(jù)原有的大小順序。 44、 4. 移碼只用于浮點數(shù)的階碼部分,故只用于表示整數(shù)。 45、 [編輯本段]定點數(shù)與浮點數(shù)的比較 數(shù)值的表示范圍 :浮點表示法所能表示的數(shù)值范圍將遠遠大于定點表示法 。 46、 精度 :對于字長相同的定點數(shù)與浮點數(shù)來說,浮點數(shù)雖然擴大了數(shù)的表示范圍,但這是以降低精度為代價的,也就是數(shù)軸上各點的排列更稀疏了 。 47、 數(shù)的運算 :浮點運算要比定點運算復雜 。 48、 溢出處理 :定點運算時,當運算結果超出數(shù)的表示范圍,就發(fā)生溢出;而在浮點運算時,運算結果超出尾數(shù)的表示范圍卻并不一定溢出,只有當階碼也超出所能表示的范圍時,才發(fā)生溢出。 本文分享完畢,希望對大家有所幫助。 標簽:
免責聲明:本文由用戶上傳,如有侵權請聯(lián)系刪除!