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

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

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

int num = 0x7fffffff;

num = -num;

printf("%d\n", num);

printf("%d\n", -num);

最小负整数则是

    int tnum = num - 1;

    printf("%d\n", tnum);

    printf("%d\n", -tnum);

原因是因为有一个0

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

你可能感兴趣的:(long)