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。这一点对于应当频繁用到无符号数据类型的嵌入式系统来说是丰常重要的。


  • 相关阅读:
    移动布局---1. 移动端布局基础
    1. CSS新特性之选择器
    1. H5新增语义化标签
    POJ 3281
    poj 1986
    POJ 3728
    poj 2763
    poj 2749
    uva 11294
    LA 3713
  • 原文地址:https://www.cnblogs.com/CodeWorkerLiMing/p/12007654.html
Copyright © 2011-2022 走看看