105年程式設計考古題 - 考試
By Linda
at 2017-05-14T16:50
at 2017-05-14T16:50
Table of Contents
根據 IEEE 754 二進位浮點數算術標準,請問下列 C 語言程式碼執行後輸出為何?
int main(){
float A = 100;
float B = -125.53125;
printf("%08X\n", *(unsigned int *) &A);
printf("%08X\n", *(unsigned int *) &B);
}
解答:
42C80000
C2FB1000
我的想法:
在*(unsigned int *) &A這部分
是強制轉換成一個無號整數型態的指標變數 並指向A的位址
而最前方的*則代表會顯示A位址的內容(值)
也就是最後會以無號整數的型態顯示出A的內容
======================================================
以上是我的想法若有錯誤還請糾正
解答部分是將100用浮點數表示法轉換成
01000010110010000000000000000000
也就是浮點數的32位元
再將這32位元用16進位表示法顯示出來成為42C80000
但今天我自己在程式中加入以下敘述
float C = 100;
printf("%08X", (unsigned int) C);
則只顯示成00000064
為何電腦不會先轉換成浮點數表示法再用16進位去做轉換 而是直接將100轉成16進位?
還請知道的大大提點 感謝
--
Tags:
考試
All Comments
By Jack
at 2017-05-19T04:04
at 2017-05-19T04:04
By Elma
at 2017-05-21T06:46
at 2017-05-21T06:46
By Ethan
at 2017-05-22T20:24
at 2017-05-22T20:24
By Tristan Cohan
at 2017-05-24T05:09
at 2017-05-24T05:09
By Lily
at 2017-05-26T18:19
at 2017-05-26T18:19
By Steve
at 2017-05-28T21:08
at 2017-05-28T21:08
By Eartha
at 2017-05-29T15:49
at 2017-05-29T15:49
By Zenobia
at 2017-05-31T02:53
at 2017-05-31T02:53
Related Posts
關於路律師刑訴
By Puput
at 2017-05-14T15:22
at 2017-05-14T15:22
林石猛律師 連署東吳反對律師國考改制
By Bethany
at 2017-05-14T15:10
at 2017-05-14T15:10
林石猛律師 連署東吳反對律師國考改制
By Ursula
at 2017-05-14T11:57
at 2017-05-14T11:57
林石猛律師 連署東吳反對律師國考改制
By Agatha
at 2017-05-14T10:16
at 2017-05-14T10:16
反對律師國考改制 東吳法律系系學會發起
By George
at 2017-05-13T23:23
at 2017-05-13T23:23