请读程序片段: int x=20;printf("%d\n",~x);上面程序片段的输出结果是
6个回答
展开全部
初始x值为3,
按十进值输出x自减一后的值,
接着判断(如果x值不是有效c)10
d)11
38.下列程序段的输出结果是(
)。
int
c[
]=;
int
*
按十进值输出x自减一后的值,
接着判断(如果x值不是有效c)10
d)11
38.下列程序段的输出结果是(
)。
int
c[
]=;
int
*
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
结果235是错的。
因为计算机存放的是补码,又正数得原码=反码=补码,所以
20的补码:00010100
按位取反(~x)得11101010 后,变成负数依然是补码,注意负数这个不是真值!
所以要按照负数原码求补码的过程,逆运算由补码推回去
反码:补码11101010加 1 得 11101011
原码:反码11101011取反(符号位不变)得10010101 = 十进制 -21
注意区分:反码(正负数不一样),取反(符号位不变)、按位取反(全部反转)。
因为计算机存放的是补码,又正数得原码=反码=补码,所以
20的补码:00010100
按位取反(~x)得11101010 后,变成负数依然是补码,注意负数这个不是真值!
所以要按照负数原码求补码的过程,逆运算由补码推回去
反码:补码11101010加 1 得 11101011
原码:反码11101011取反(符号位不变)得10010101 = 十进制 -21
注意区分:反码(正负数不一样),取反(符号位不变)、按位取反(全部反转)。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
运行结果是 -21 不是235
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2010-06-22
展开全部
-21
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询