为了账号安全,请及时绑定邮箱和手机立即绑定

-10用16进制输出为何为ffffff6

-10用16进制输出为何为ffffff6

浮云间 2019-05-13 09:40:36
#includeintmain(){shortintx=-10;//原码-1000000000001010//反码-1111111111110101//补码-1111111111110110//FFF6(我以为的结果)//结果-fffffff6,好像占用4个字节printf("%x\n",x);}刚开始看C语言,不太明白求解,谢谢诸位
查看完整描述

2 回答

?
守着一只汪

TA贡献1872条经验 获得超3个赞

语言标准只规定了类型至少几个字节,以及几种类型之间的大小关系。类型具体占多大由编译器决定。
李毅的回答是对的。你没用正确的%x修饰符输出,导致其实是按unsignedint输出的。如果你改对了输出的修饰符之后,结果还是不符合预期,则可以用我上面的回答解释。
                            
查看完整回答
反对 回复 2019-05-13
  • 2 回答
  • 0 关注
  • 437 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信