免費開始練習
普考申論題 105年 [資訊處理] 程式設計概要

第 二 題

二、根據 IEEE 754 二進位浮點數算術標準,請問下列 C 語言程式碼執行後輸出為何?(25 分) int main(){ float A = 100; float B = -125.53125; printf("%08X\n", *(unsigned int *) &A); printf("%08X\n", *(unsigned int *) &B); }
📝 此題為申論題

思路引導 VIP

看到指標轉型 *(unsigned int *) &float_var,應立刻聯想其目的為讀取浮點數在記憶體中的原始二進位位元(Bit Pattern)。解題需運用 IEEE 754 單精度(32-bit)標準,將數值依序拆解為「符號位元(1-bit)」、「偏差指數(8-bit, bias 127)」與「假數(23-bit)」,最後將 32 bits 組合並轉為十六進位。

🤖
AI 詳解 AI 專屬家教

【解題關鍵】利用 C 語言的指標強制轉型(Pointer Casting)可繞過編譯器的型別轉換,直接讀取記憶體中 IEEE 754 單精度(32-bit)浮點數的原始二進位資料,再轉換為十六進位輸出。 【詳解】 IEEE 754 單精度浮點數結構為:1 位元符號(Sign, S) + 8 位元指數(Exponent, E, 偏差值 127) + 23 位元假數(Mantissa, M)。

▼ 還有更多解析內容

升級 VIP 解鎖