int a=123456789; printf("%d,%d\n",*((short*)&a),*((char*)&a)); 求输出结果,如何解释要详细,

 我来答
百度网友76bc4363f
2012-10-04 · TA获得超过1019个赞
知道小有建树答主
回答量:360
采纳率:0%
帮助的人:257万
展开全部
结果是-13015,21;
123456789的16进制是0x075bcd15;
*((short*)&a)的结果是取a的低2位字节,既是0xcd15;按照%d输出,所以在高2位字节补1,其输出值是0xffffcd15;是个负数;
*((char*)&a)的结果是取a的低1位字节,既是0x15;按照%d输出,所以在高3位补0,其输出值是0x00000015,也即是21
追问
用小端法如何解释呢
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式