[理工] 资结 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