📜  C |数据类型问题1

📅  最后修改于: 2021-07-02 15:40:28             🧑  作者: Mango

预测以下程序的输出。假设数字以2的补码形式存储。

#include 
int  main() 
{ 
   unsigned int x = -1; 
   int y = ~0; 
   if (x == y) 
      printf("same"); 
   else
      printf("not same"); 
   return 0; 
}

(一)一样
(B)不一样答案: (A)
说明: -1和〜0本质上具有相同的位模式,因此x和y必须相同。在比较中,y被提升为无符号并与x进行比较(有关提升规则,请参见此内容)。结果是“相同”。但是,当解释为有符号和无符号时,它们的数值将有所不同。 x是MAXUNIT,y是-1。由于也有y的%u,因此输出将是MAXUNIT和MAXUNIT。这个问题的测验

想要从精选的最佳视频中学习和练习问题,请查看《基础知识到高级C的C基础课程》。