看板 Grad-ProbAsk 關於我們 聯絡資訊
https://imgur.com/1ugqDhg 求解 解題思路過程 u.m 最後會輸出什麼? 題目解答為-69 解答不一定對?! -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.200.51.201 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Grad-ProbAsk/M.1573314244.A.272.html
mi981027: 剛才跑了一下 答案應該會跟你的電腦是big endian還是lit 11/10 00:58
mi981027: tle endian有關? 11/10 00:58
mi981027: 先講union union裡宣告的變數記憶體是共享的 (可以去pri 11/10 00:58
mi981027: nt兩個人的位址,會是一樣的 ) 而大小由最大的那個人決 11/10 00:58
mi981027: 定 11/10 00:58
mi981027: int有4個bytes, char只有1個,所以就分配4 bytes給u 11/10 00:58
mi981027: 今天覆值187給u.n 二進位是0...010111011(共32 bit) 11/10 00:58
mi981027: 如果是一般intel電腦,是little endian的 就會分成4段 11/10 00:58
mi981027: 10111011, 00000000, 00000000, 00000000 11/10 00:58
mi981027: 由低位開始擺,而u.m因為跟u.n共享同一個位址,但又是ch 11/10 00:58
mi981027: ar,只有一個byte 11/10 00:58
mi981027: 所以印出來的時候就會印出 10111011 11/10 00:58
mi981027: 轉成10進位就是-69 11/10 00:58
mi981027: 但如果今天是big endian, 就會反過來擺 那答案就是0 11/10 00:58
DLHZ: 長知識 11/10 01:00
mistel: 有點不太懂 是指m,n兩個變數用同一個記憶體空間 的意思嗎 11/10 08:11
mistel: ? 11/10 08:11
Handsomeshen: 長知識 11/10 11:09
DLHZ: 是 11/10 11:49
mistel: 原來如此,原來還有union這種結構變數,懂了! 11/10 12:29
plsmaop: union,compiler 常用 11/10 12:52
realmanKG: 推,長知識 11/10 14:46
zuchang: 長知識推 話說 這哪裡的題目啊 11/10 14:50
BOSSHAHA: 感謝m大解惑!! 11/10 17:10
BOSSHAHA: Z大 117期中考古 11/10 17:12
gash55025502: XD難怪很像彪哥題目 11/10 18:29
achicn3: 一看就知是彪哥的題目 11/11 12:17
joey11121: 推長知識 11/12 09:53