zoukankan      html  css  js  c++  java
  • 有符号类型与无符号类型之间的转换

    void foo(void)

    {

         unsigned int a = 6;

         int b = -20;

         (a+b > 6) ? puts("> 6") : puts("<= 6");

    }

    printf("b = %#x\n",b);

    b = 0xffffffec

    这个问题测试你是否懂得C语言中的整数自动转换原则;

    这无符号整型问题的答案是输出是“>6”。

    原因是当表达式中存在有符号类型和无符号类型时所有的操作数都自动转换为无符号类型。因此-20变成了一个非常大的正整数,所以该表达式计算出的结果大于6。这一点对于应当频繁用到无符号数据类型的嵌入式系统来说是丰常重要的。


  • 相关阅读:
    2020/12/2
    2020/12/1
    Cannot do a soft reset in the middle of a merge
    webpack img
    rm -fr ".git/rebase-apply"
    css 颜色
    初始化样式
    a标签
    esma 最新
    前端
  • 原文地址:https://www.cnblogs.com/CodeWorkerLiMing/p/12007653.html
Copyright © 2011-2022 走看看