在TC中,已知;unsigned int x=65535;执行以下语句后的x值为?printf("%d\n",x):答案

问题描述:

在TC中,已知;unsigned int x=65535;执行以下语句后的x值为?printf("%d\n",x):答案写的是-1
1个回答 分类:综合 2014-12-04

问题解答:

我来补答
unsigned int x=65535
然后呢
转成2进制呗,16个1咯
再然后呢
你又要变成整型,计算机咋办呢?
求补码呗
补码怎么求?
取反加1呗,怎么取反呢
第一个1是不变的,然后后面15个都变成了0,然后加1
就变成了1,14个0,1
再然后计算机输出
因为你的是无符号的,所以只给你15位,后面的15位,就是14个0,跟1
然后第1位干嘛去了呢?他变成横的1了,就这样,变成-1~
再问: 可不可以补码,让计算机求出,不需要人工了解2进制之类的?我们学省二计算机,书上只是粗略的介绍了一下补码。
 
 
展开全文阅读
剩余:2000
下一页:明矾净水