我所忽略的c 语言标准

    技术2022-05-19  27

    1.表达式中有无符号数和有符号数混用的时候

     

    先看一个例子:

    int main(void)

    {

    unsigned int a = 6;

    int                 b = -20

    return (a+b) > 0 ? 1 : 0;

     

    }

     

    echo $ 的结果是 1。

    首先这两个数在内存中都是以补码形式存储的,

     

    以上面的例子分别为0xffffffec  , 0x6。相加后的值也很明显等于fffffff2

    可以看一下gcc中反汇编:

    0: 8d 4c 24 04 lea 0x4(%esp),

    转载请注明原文地址: https://ibbs.8miu.com/read-2205727.html

    最新回复(0)