作者BOSSHAHA ()
看板Grad-ProbAsk
标题[理工] 资结 int char 转换
时间Sat Nov 9 23:44:02 2019
https://imgur.com/1ugqDhg
求解 解题思路过程
u.m 最後会输出什麽?
题目解答为-69
解答不一定对?!
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 1.200.51.201 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Grad-ProbAsk/M.1573314244.A.272.html
1F:推 mi981027: 刚才跑了一下 答案应该会跟你的电脑是big endian还是lit 11/10 00:58
2F:→ mi981027: tle endian有关? 11/10 00:58
3F:→ mi981027: 先讲union union里宣告的变数记忆体是共享的 (可以去pri 11/10 00:58
4F:→ mi981027: nt两个人的位址,会是一样的 ) 而大小由最大的那个人决 11/10 00:58
5F:→ mi981027: 定 11/10 00:58
6F:→ mi981027: int有4个bytes, char只有1个,所以就分配4 bytes给u 11/10 00:58
7F:→ mi981027: 今天覆值187给u.n 二进位是0...010111011(共32 bit) 11/10 00:58
8F:→ mi981027: 如果是一般intel电脑,是little endian的 就会分成4段 11/10 00:58
9F:→ mi981027: 10111011, 00000000, 00000000, 00000000 11/10 00:58
10F:→ mi981027: 由低位开始摆,而u.m因为跟u.n共享同一个位址,但又是ch 11/10 00:58
11F:→ mi981027: ar,只有一个byte 11/10 00:58
12F:→ mi981027: 所以印出来的时候就会印出 10111011 11/10 00:58
13F:→ mi981027: 转成10进位就是-69 11/10 00:58
14F:→ mi981027: 但如果今天是big endian, 就会反过来摆 那答案就是0 11/10 00:58
15F:推 DLHZ: 长知识 11/10 01:00
16F:推 mistel: 有点不太懂 是指m,n两个变数用同一个记忆体空间 的意思吗 11/10 08:11
17F:→ mistel: ? 11/10 08:11
18F:推 Handsomeshen: 长知识 11/10 11:09
19F:→ DLHZ: 是 11/10 11:49
20F:推 mistel: 原来如此,原来还有union这种结构变数,懂了! 11/10 12:29
21F:推 plsmaop: union,compiler 常用 11/10 12:52
22F:→ realmanKG: 推,长知识 11/10 14:46
23F:推 zuchang: 长知识推 话说 这哪里的题目啊 11/10 14:50
24F:→ BOSSHAHA: 感谢m大解惑!! 11/10 17:10
25F:→ BOSSHAHA: Z大 117期中考古 11/10 17:12
26F:推 gash55025502: XD难怪很像彪哥题目 11/10 18:29
27F:推 achicn3: 一看就知是彪哥的题目 11/11 12:17
28F:推 joey11121: 推长知识 11/12 09:53