设有说明:int u=0,v=l,z=2; 则下列表达式中结果为-l的有( ab ) A.v=~u B.u=u|~(v&z) C.v=(u|z 为什么AB是-1啊?... 为什么AB是-1啊? 展开 我来答 可选中1个或多个下面的关键词,搜索相关资料。也可直接点“搜索资料”搜索整个问题。 表达式 int a.v b.u v&z 搜索资料 1个回答 #热议# 普通体检能查出癌症吗? rssg888 2012-06-16 · TA获得超过1032个赞 知道小有建树答主 回答量:330 采纳率:0% 帮助的人:368万 我也去答题访问个人页 关注 展开全部 u=0;~u=ffffffff,就是-1 了v&z=2&1==0;~(v&z)==~0==ffffffff,任何数与ffffffff按位求或结果都是ffffffff,就是-1了 更多追问追答 追问 这种题不是按照2进制来的么? 追答 就是2进制啊 因为写成2进制数字太长了,所以一般把2进制数字转换成16进制写(每4位2进制正好对应一位 16进制数字 追问 反码是全部取反?包括符号位?那2的反码呢??取反并不是他的反码是吧?八个F就是-1???好像不是? 追答 反码就是全部取反,包括符号位 2 的反码就是 11111111111111111111111111111101也就是fffffffd,对于32 位整数 8个f 是-1是常识了 ,它是这么来的:把1 按位取反后再+1这样实验一下就知道了:int a=-1;printf("%x",a); //以16进制输出a,32位会输出8个f,16位的会输出4个f 追问 我用计算器转换,0取反不是1111111111111111么?可是这个二进制数转成十进制是65535怎么?真麻烦您了,我对这个很是混淆 追答 对于32位或者16位无符号数来说1111111111111111就是65535,你统一以4字节方式转换就是-1了,还有xp的计算器2进制转10进制是无符号的,你可以这样实验:10进制下输入-1,转换成2进制,会显式11111111111111111111111111111111,然后转换成10进制,会变成4294967295,这就是无符号的32位整数的最大值 本回答由提问者推荐 已赞过 已踩过< 你对这个回答的评价是? 评论 收起 推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询 其他类似问题 2014-05-19 设有说明: int u=l,v=3,w=5; 表达式:u<<=(v|w)的值是( 求解结果加过程。。。谢谢 4 2014-11-19 int u=1,v=3.则表达式u<<=v的值是 怎么做,为什么 8 2013-07-12 程序int u=1 ,v=14;表达式u+-v>>2的值是? 2 更多类似问题 > 为你推荐: