[理工] 資結 int char 轉換

看板Grad-ProbAsk作者時間6年前 (2019/11/09 23:44), 編輯推噓10(10018)
留言28則, 11人參與, 6年前最新討論串1/1
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

11/10 00:58, 6年前 , 1F
剛才跑了一下 答案應該會跟你的電腦是big endian還是lit
11/10 00:58, 1F

11/10 00:58, 6年前 , 2F
tle endian有關?
11/10 00:58, 2F

11/10 00:58, 6年前 , 3F
先講union union裡宣告的變數記憶體是共享的 (可以去pri
11/10 00:58, 3F

11/10 00:58, 6年前 , 4F
nt兩個人的位址,會是一樣的 ) 而大小由最大的那個人決
11/10 00:58, 4F

11/10 00:58, 6年前 , 5F
11/10 00:58, 5F

11/10 00:58, 6年前 , 6F
int有4個bytes, char只有1個,所以就分配4 bytes給u
11/10 00:58, 6F

11/10 00:58, 6年前 , 7F
今天覆值187給u.n 二進位是0...010111011(共32 bit)
11/10 00:58, 7F

11/10 00:58, 6年前 , 8F
如果是一般intel電腦,是little endian的 就會分成4段
11/10 00:58, 8F

11/10 00:58, 6年前 , 9F
10111011, 00000000, 00000000, 00000000
11/10 00:58, 9F

11/10 00:58, 6年前 , 10F
由低位開始擺,而u.m因為跟u.n共享同一個位址,但又是ch
11/10 00:58, 10F

11/10 00:58, 6年前 , 11F
ar,只有一個byte
11/10 00:58, 11F

11/10 00:58, 6年前 , 12F
所以印出來的時候就會印出 10111011
11/10 00:58, 12F

11/10 00:58, 6年前 , 13F
轉成10進位就是-69
11/10 00:58, 13F

11/10 00:58, 6年前 , 14F
但如果今天是big endian, 就會反過來擺 那答案就是0
11/10 00:58, 14F

11/10 01:00, 6年前 , 15F
長知識
11/10 01:00, 15F

11/10 08:11, 6年前 , 16F
有點不太懂 是指m,n兩個變數用同一個記憶體空間 的意思嗎
11/10 08:11, 16F

11/10 08:11, 6年前 , 17F
11/10 08:11, 17F

11/10 11:09, 6年前 , 18F
長知識
11/10 11:09, 18F

11/10 11:49, 6年前 , 19F
11/10 11:49, 19F

11/10 12:29, 6年前 , 20F
原來如此,原來還有union這種結構變數,懂了!
11/10 12:29, 20F

11/10 12:52, 6年前 , 21F
union,compiler 常用
11/10 12:52, 21F

11/10 14:46, 6年前 , 22F
推,長知識
11/10 14:46, 22F

11/10 14:50, 6年前 , 23F
長知識推 話說 這哪裡的題目啊
11/10 14:50, 23F

11/10 17:10, 6年前 , 24F
感謝m大解惑!!
11/10 17:10, 24F

11/10 17:12, 6年前 , 25F
Z大 117期中考古
11/10 17:12, 25F

11/10 18:29, 6年前 , 26F
XD難怪很像彪哥題目
11/10 18:29, 26F

11/11 12:17, 6年前 , 27F
一看就知是彪哥的題目
11/11 12:17, 27F

11/12 09:53, 6年前 , 28F
推長知識
11/12 09:53, 28F
文章代碼(AID): #1Tnjx49o (Grad-ProbAsk)