C语言题目。答案是C.不明白为什么。求解释,谢谢!

 我来答
匿名用户
2014-02-11
展开全部
前面定义char类型,后面直接输出整型,-1是异常,你对x进行任何加减乘除都是-1
更多追问追答
追问
哦~假如一开始就把x定义成int,那再打印出来的是-32767么?
追答
还是65535因为那是后减减,要运算一次才生效,已经输出了,又不循环所以那个等于没用。。。
邓某某2012
2014-02-11 · TA获得超过196个赞
知道小有建树答主
回答量:166
采纳率:0%
帮助的人:126万
展开全部
0x表示十六进制,char只有8bit,只储存ff(11111111),最高为是符号位,为1表示负数,将ff减一再取反得到1,所以结果为-1
追问
为1为什么表示负数啊?还有将ff减一再取反怎么就得到1了?
追答
有符号的变量,最高位表示符号,0表示正数,1表示负数。负数在内存中以其补码表示,即将其绝对值去反后再加1。所以最高位为1时,说明是负数,减1再取反就得到绝对值
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
流星不死
2014-02-11 · TA获得超过1662个赞
知道小有建树答主
回答量:1621
采纳率:0%
帮助的人:1308万
展开全部
补码知道吗
更多追问追答
追答

追问
不知道诶。。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式