“当表达式中存在有符号类型和无符号类型时,默认情况下计算的结果将转化为无符号类型”
而对于计算机过程而言,变量本身转化为有符号还是无符号数,都不会改变在计算机中存储的位状态。也就是说有符号和无符号数在计算机中都是以补码形式存在。
举例:
#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; }
时间: 2024-10-26 18:37:52