1樓:匿名使用者
32×10=320
320>300
10套已經不夠了,所以13套肯定不夠
2樓:
不夠,每套童話32元,10套即需要320元大於300,13套肯定大於300
浮點數怎麼計算?要詳細過程··
3樓:蕭一歐
請耐心看完:
浮點數運算
假定有兩個浮點數 x=mx * 2ex , y=my * 2ey
(1)加減運算
實現x±y運算,需要如下五步:
1.1 對階操作,即比較兩個浮點數的階碼值的大小.求△e=ex-ey。
當其不等於零時,首先應使兩個數取相同的階碼值。其實現方法是,將原來階碼小的數的尾數右移|△e|位,其階碼值加上|△e|,即每右移一次尾數要使階碼加1,則該浮點數的值不變(但精度變差了)。尾數右移時,對原碼形式的尾數,符號位不參加移位,尾數高位補0;對補碼形式的尾數,符號位要參加右移並使自己保持不變。
為減少誤差,可用另外的線路,保留右移過程中丟掉的一到幾位的高位值,供以後舍入操作使用。
1.2 實現尾數的加(減)運算,對兩個完成對階後的浮點數執行求和(差)操作。
1.3 規格化處理,若得到的結果不滿足規格化規則,就必須把它變成規格化的數,規格化處理規則如下:
當結果尾數的兩個符號位的值不同時,表明尾數運算結果溢位。此時應 使結果尾數右移一位,並使階碼的值加1,這被稱為向右規格化,簡稱右規。
當尾數的運算結果不溢位,但最高數值位與符號位同值,表明不滿足規格化規則,此時應重複地使尾數左移、階減減1,直到出現在最高數值位上的值與符號位的值不同為止,這是向左規格化的操作,簡稱左規。
1.4 舍入操作。在執行對階或右規操作時,會使尾數低位上的一位或多位的數值被移掉,使數值的精度受到影響,可以把移掉的幾個高位的值儲存起來供舍入使用。
舍入的總的原則是要有舍有入,而且儘量使舍和入的機會均等,以防止誤差積累。常用的辦法有"0"舍"1"入法,即移掉的最高位為1時 則在尾數末位加1;為0時則捨去移掉的數值。該方案的最大誤差為2-(n+1)。
這樣做可能又使尾數溢位,此時就要再做一次右規。另一種方法 "置1"法,即右移時,丟掉移出的原低位上的值,並把結果的最低位置成1。該方案同樣有使結果尾數變大或變小兩種可能。
即舍入前尾數最低位已為0,使其變1,對正數而言,其值變大,等於最低位入了個1。若尾數最低位已為1,則再對其置1無實際效用,等於舍掉了丟失的尾數低位值。
1.5 判結果的正確性,即檢查階碼是否溢位。浮點數的溢位是以其階碼溢位表現出來的。
在加減運算真正結束前,要檢查是否產生了溢位,若階碼正常,加(減)運算正常結束;若階碼下溢,要置運算結果為浮點形式的機器零,若上溢,則置溢位標誌。
例15:某浮點數階碼6位(含1位符號位:階符),補碼錶示,尾數10位(含1位符號位,數符),補碼錶示, x=2010b * 0.
11011011b, y=2100b * (-0.10101100b),求 x+y
解: 由已知條件,ex=+010b,mx = 0.11011011 b,
ey=+100b,my =-0.10101100 b
對應補碼分別為
[ex]補=[+010b] 補=[+00010b] 補=000010b
[mx]補= [+0.11011011 b]補=[0.110110110 b] 補=0, 110110110 b
[ey]補=[+100b] 補=[+00100b] 補=000100b
[-ey]補=111100b
[my]補= [-0.10101100 b]補=[-0.101011000 b] 補=1, 010101000 b
浮點表示分別為:
數符 階碼 尾數數值
[x]浮 = 0 000010 110110110
[y]浮 = 1 000100 010101000
15_(1)對階
[△ e]補= [ex]補+[-ey]補= 00 00010b + 11 11100b = 11 11110b
△e =-00010b=-2,說明x的階碼小,應使mx右移兩位,ex加2
所以修正[x]浮 = 0 000100 001101101 10
15_(2)尾數求和
00 001101101 10
+ 11 010101000
11 100010101 10
15_(3)尾數規格化
尾數運算結果的符號位與最高數值位均為1,應執行左規處理,具體為:將尾數左移一位,符號位1位,結果為1000101011, 階碼減1變為000011。
15_(4)尾數移出位的舍入處理
左規已將對階移出的1位有效1移入,尾數不用做舍入處理。
15_(5)判溢位,寫結果
尾數已規格化且階碼符號位為00,沒有溢位,最終結果為
[ex+y]補=000011 ex+y=+00011b
[mx+y]補=1000101011 mx+y=-0.111010101b
所以,x+y = 2+0011b *(-0.111010101b)
(2)乘法運算
實現x*y運算,需要如下三步:
2.1 尾數相乘(兩個定點小數相乘)
2.2 階碼求和
2.3 結果左規、舍入
例16:某浮點數階碼3位(含1位符號位:階符),補碼錶示,尾數3位(含1位符號位,數符),原碼錶示, x=210b * 0.
1101b, y=2-01b * (-0.1011b),求 x*y
解:由已知條件,ex=+10b,mx = 0.1101 b,
ey=-01b,my =-0.1011 b
對應機器數分別為:
[ex]補=[+10b]補=010b
[mx]原= [+0.1101 b]原=0, 1101 b
[ey]補=[-01b]補=111b
[my]原= [-0.1011b]原=1, 1011b
機內浮點表示分別為:
數符 階碼 尾數數值
[x]浮 = 0 010 1101
[y]浮 = 1 111 1011
16_(1)尾數相乘(mx* my)
1.1 [ | mx | ]原= [+0.1101 b]原=0, 1101 b
[|my | ]原= [+0.1011b]原=0, 1011b
1.2 高 位 積 乘數/低位積
y000 0000 1 0 1 1
+[ y0*|x| ]補 00 1101
00 1101
右移 00 0110 1 1 0 1
+[ y0*|x| ]補 00 1101
01 0011
右移 00 1001 1 1 1 0
+[ y0*|x| ]補 00 0000
00 1001
右移 00 0100 1 1 1 1
+[ y0*|x| ]補 00 1101
01 0001
右移 00 1000 1 1 1 1
1.3 [mx * my] 符號=[ mx ]符號⊕[my]符號=0⊕1=1
1.4 [mx * my] 原=1,100011110b
16_(2)階碼求和
00 10
+ 11 11
00 01
16_(3)結果左規、舍入
尾數已為規格化形式,由於數值部分職能儲存4位,需對小數點後第5位進行0設1入,最終尾數原碼為1,1001b
最終運算結果為:1 001 1001
所以,x*y = 2+01b *(-0.1001b)
(3)除法運算
實現x/y運算,需要如下三步:
3.1 尾數相除(兩個定點小數相除)
3.2 階碼相減
3.3 結果規格化及舍入
例17:某浮點數階碼3位(含1位符號位:階符),補碼錶示,尾數3位(含1位符號位,數符),原碼錶示, x=210b * 0.
0011b, y=2-01b * 0.1011b,求 x/y
解:由已知條件,ex=+10b,mx = 0.0011 b,
ey=-01b,my =-0.1011 b
對應機器數分別為
[ex]補=[+10b]補=010b
[mx]原= [+0.0011 b]原=0, 0011b
[ey]補=[-01b]補=111b
[my]原= [-0.1011b]原=1, 1011b
機內浮點表示分別為:
數符 階碼 尾數數值
[x]浮 = 0 010 0011
[y]浮 = 1 111 1011
17_(1)尾數相除(mx/ my)
1.1 [ | mx | ]原= [+0.00110000 b]原=0, 00110000 b
[|my | ]原= [+0.1011b]原=0, 1011b
[-|my | ]補= 1, 0101b
1.2 被除數高位/餘數 被除數低位/商
00 0011 00000
+[-|my |]補 11 0101
11 1100 00000
左移 11 1000 00000
+[ |my |]補 00 1011
00 0011 00001
左移 00 0110 00010
+[-|my |]補 11 0101
11 1011 00010
左移 11 0110 00100
+[|my |]補 00 1011
00 0001 00101
左移 00 0010 01010
+[-|my |]補 11 0101
11 0111 01010
+[|my |]補 00 1011
00 0010
1.3 [mx /my] 商符號=[ mx ]符號⊕[my]符號=0⊕0=0
1.4 [mx / my] 商原=0,1010b
17_(2)階碼相減
[-ey]補=[+01b]補=001b
00 10
+ 00 01
00 11
17_(3)結果規格化、舍入
尾數已為規格化形式,餘數過小,結果也不必舍入,
最終運算結果為:0 011 1010
所以,x*y = 2+11b *(+0.1010b)
要計算過程
解 原式 1 2 1 3 1 3 1 4 1 4 1 5 1 5 1 6 1 2005 1 2006 1 2 1 2006 1003 2006 1 2006 1002 2006 501 1003 1003分之501 朋友,請採納正確答案,你們只提問,不採納正確答案,回答都沒有勁!朋友,請 採納答案 ...
C語言中浮點數變數範圍是怎麼計算出來的?還是官方定義的?為什
這個和儲存的格式有關係,先看看浮點數格式 一個浮點數總共有4個字專節,32位 第一個位元表符屬號 0正數 1負數 後八個位元表階碼,即為指數,這個數在實際的數上面加127最後23個位元表尾數 原碼錶示 實際上有8位是指數位 128到127 所以其範圍最大值是2 2 127 前面的2是因為最後23個位...
3 4 3 要計算過程
1 2 2 3 4 5 1 2 1 2 2 3 4 5 1 2 1 2 1 2 2 3 4 5 4 5 2 3 12 10 15 2 15 擴充套件資料 1 乘法簡便計算規律 乘法交換律 a b b a 乘法結合律 a b c a b c a b c 專乘法分屬配律 a b c a c b c a ...