问题描述: 在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进制之类的?我们学省二计算机,书上只是粗略的介绍了一下补码。 展开全文阅读