[理工] 資結 int char 轉換

作者: BOSSHAHA (BOSS)   2019-11-09 23:44:02
https://imgur.com/1ugqDhg
求解 解題思路過程
u.m 最後會輸出什麼?
題目解答為-69
解答不一定對?!
作者: mi981027 (呱呱竹)   2019-11-10 00:58:00
剛才跑了一下 答案應該會跟你的電腦是big endian還是little endian有關?先講union union裡宣告的變數記憶體是共享的 (可以去print兩個人的位址,會是一樣的 ) 而大小由最大的那個人決定int有4個bytes, char只有1個,所以就分配4 bytes給u今天覆值187給u.n 二進位是0...010111011(共32 bit)如果是一般intel電腦,是little endian的 就會分成4段10111011, 00000000, 00000000, 00000000由低位開始擺,而u.m因為跟u.n共享同一個位址,但又是char,只有一個byte所以印出來的時候就會印出 10111011轉成10進位就是-69但如果今天是big endian, 就會反過來擺 那答案就是0
作者: DLHZ ( )   2019-11-10 01:00:00
長知識
作者: mistel (Mistel)   2019-11-10 08:11:00
有點不太懂 是指m,n兩個變數用同一個記憶體空間 的意思嗎?
作者: Handsomeshen (洗澡是骯髒人的事)   2019-11-10 11:09:00
長知識
作者: DLHZ ( )   2019-11-10 11:49:00
作者: mistel (Mistel)   2019-11-10 12:29:00
原來如此,原來還有union這種結構變數,懂了!
作者: plsmaop (plsmaop)   2019-11-10 12:52:00
union,compiler 常用
作者: realmanKG (各位觀眾,五支菸)   2019-11-10 14:46:00
推,長知識
作者: zuchang (chang)   2019-11-10 14:50:00
長知識推 話說 這哪裡的題目啊
作者: BOSSHAHA (BOSS)   2019-11-10 17:10:00
感謝m大解惑!!Z大 117期中考古
作者: gash55025502 (白影弓)   2019-11-10 18:29:00
XD難怪很像彪哥題目
作者: achicn3 (Sher)   2019-11-11 12:17:00
一看就知是彪哥的題目
作者: joey11121 (KRjoyz)   2019-11-12 09:53:00
推長知識

Links booklink

Contact Us: admin [ a t ] ucptt.com