【问题标题】:Why does if statment return true? [duplicate]为什么if语句返回true? [复制]
【发布时间】:2015-05-06 23:59:39
【问题描述】:

高级C问题:为什么if返回true?

unsigned int i = 8; 
int j = -16;
    if(i+j > 5){
        printf(">5 = %d\n",i+j);
    }else{
        printf("<5 = %d\n",i+j);
    }

【问题讨论】:

  • 这里需要处理unsigned。这不是高级问题,抱歉。
  • 对不起,对于我这个初学者来说是

标签: c embedded


【解决方案1】:

signed intunsigned int 一起操作时,它会转换为unsigned int。由于-16 不能表示为unsigned int,因此可以将ny unsigned int (UINT_MAX) 表示的最大值添加到-16

【讨论】:

  • “既然 -16 不能适应 unsigned int” 这不是不适应的问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-11-10
  • 2016-02-15
  • 2016-02-12
  • 2016-01-04
  • 2022-12-09
  • 2021-11-10
相关资源
最近更新 更多