int和long long有符号整形 负数比正数多一个

int的负数比正数多一个,则有一个负数在int范围内没有对应的正数

最大正整数用十六进制,很容易表示:0x7f ff ff ff

int num = 0x7fffffff;
num = -num;
printf("%d
", num);
printf("%d
", -num);

最小负整数则是

    int tnum = num - 1;
    printf("%d
", tnum);
    printf("%d
", -tnum);

原因是因为有一个0

long long 类型也是如此,正数比负数少一个

原文地址:https://www.cnblogs.com/xuqiulin/p/4471894.html