有符号数和无符号数在一起如何处理的

有符号数和无符号数在一起如何处理的

当表达式中存在有符号类型和无符号类型时,默认情况下计算的结果将转化为无符号类型

而对于计算机过程而言,变量本身转化为有符号还是无符号数,都不会改变在计算机中存储的位状态。也就是说有符号和无符号数在计算机中都是以补码形式存在

举例:

#include <stdio.h>
void foo(void)
{
    unsigned int a = 6;
    int b = -20;
    printf("a+b=%x\t",a+b);
    (a+b > 6) ? puts("> 6") : puts("<= 6");
}
int main(int argc, char *argv[])
{
    foo();
    int a=-1;
    printf("\n无符号状态:%u\t有符号状态:%d\t十六进制状态:%x",a,a,a);
    return 0;

}

有符号数和无符号数在一起如何处理的