[轉錄]Re: 計算機概論/林國貴/97上期中考(部ꔠ…
※ [本文轉錄自 FCU_Talk 看板]
作者: final01 (牛頓運動定律) 看板: FCU_Talk
標題: Re: [用功] 一個計概題目
時間: Sun Jan 11 18:54:24 2009
※ 引述《chin0921 (秦憨)》之銘言:
: ※ 引述《h5566 (5566)》之銘言:
: : 請用16進制來回答變數 s,d的內碼
: : (1) char s[6]="B9d3";
: : 有人知道s的內碼是什麼嗎?
: 可以再問一下另外兩題嗎..
: 2. int a=77,b=-91; int c,d,e; c=a&b; d=a|b; e=b<<3;
: 並說明整數定點法4bytes的最大與最小值
a = 77 = 0000 0000 0000 0000 0000 0000 0100 1101
b = -91 = 1111 1111 1111 1111 1111 1111 1101 1011
c = a&b = 0000 0000 0000 0000 0000 0000 0100 1001
d = a|b = 1111 1111 1111 1111 1111 1111 1101 1111
e =b<<3 = 1111 1111 1111 1111 1111 1110 1101 1000
4 byte = 32 bit
max = 2^31-1 (二的三一次方減一)
min = -2^31 (負二的三一次方)
: 3. float f=-46.8;
: 並說明實數浮點法IEEE-754,4bytes,其精確度幾位與最大最小的近似值
先將-46.8 轉成二進位
1.有負號先記起來,最後再用
2.實數部份照轉 46 = 101110
3.0.8轉二進位
0.8*2 = 1.6 //取1 也就是實數部份,只取小數部份接著乘
0.6*2 = 1.2 //取1
0.2*2 = 0.4 //取0
0.4*2 = 0.8 //取0
明顯這是個循環小數
所以可以推得
____
0.8 = 0.1100 <- 這是二進位喔,別搞錯 (循環小數)
以上是我十進位轉二進位的的方法
____
綜合1.2.3點可以得知 -46.8 = -101110.1100
因為題目要用IEEE 754的單精準度(float)
所以你應該查一下單精準格式是
x|xxxxxxxx|xxxxxxxxxxxxxxxxxxxxxx
正負號(1) 指數(8) 小數點(23)
指數的儲存方式是超127
以上是解說
____
進入題目 -46.8 = -101110.1100
____ ____
1.先正規化-10110.1100 => -1.011101100 * 2^5 (正規化就是實數部份只剩一位)
^^實數 ^^指數
2.因為是超127 所以帶一條式子 x-127 = 5,可得x = 132
這是我們的指數部份,超127是啥要講清楚很麻煩,你自己去找書吧
3.照格式寫
1 | 10000100 | 01110110011001100110011
負數 132 就把小數後面的都填入,循環部份就填到滿
大概就是這樣寫,沒計算錯誤就是對的~
不過考試老師說心意到即可~正確與否不重要!!
IEEE 754最大和最小我不太確定老師的答案是啥,因為檢討考卷那天我翹課了!科科
不過我是看我自己的書(不是老師的課本.我是看是白算盤),書上是寫有正規跟非正規
一般可是寫正規即可,除非有要求非正規
正規的話:
最大正數2^127*1.11111111111111111111111
最小正數2^-126*1.00000000000000000000000
最小負數-2^127*1.1111111111111111111111
最大負數-2^-126*1.0000000000000000000000
因為我沒去上課所以不知老師要的答案是哪個~題目也沒說請楚是要正最大還是負最大
,正最小或負最小.考試就隨你高興吧
不過阿貴老師似乎沒教那麼多?
: 有哪位高手知道這兩題怎麼解嗎,希望知道的能幫助一下@@
: 另外,看到前面有人說期末考OPEN BOOK
: 不知道真的假的?
應該沒有吧
: 因為我跟我同學都沒聽過這個消息
我有時候也沒去上課~所以也不是很確定!
期末考就實習的程式背一背吧@@
--
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.139.46.61
※ 編輯: final01 來自: 220.139.46.61 (01/11 18:58)
推
01/11 19:22,
01/11 19:22
→
01/11 19:27,
01/11 19:27
→
01/11 19:27,
01/11 19:27
推
01/11 19:55,
01/11 19:55
推
01/11 20:09,
01/11 20:09
推
01/11 20:10,
01/11 20:10
→
01/11 20:15,
01/11 20:15
剛第一題寫錯,-91忘了要補符號補位
※ 編輯: final01 來自: 220.139.46.61 (01/11 20:55)
推
01/11 22:00,
01/11 22:00
推
01/12 00:35,
01/12 00:35
推
01/13 00:47,
01/13 00:47
推
01/13 13:14,
01/13 13:14
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.132.214.27