作业帮 > 综合 > 作业

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

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/09/30 09:18:36
在TC中,已知;unsigned int x=65535;执行以下语句后的x值为?printf("%d\n",x):答案写的是-1
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进制之类的?我们学省二计算机,书上只是粗略的介绍了一下补码。