int的负数比正数多一个,则有一个负数在int范围内没有对应的正数
最大正整数用十六进制,很容易表示:0x7f ff ff ff
int num = 0x7fffffff;
num = -num;
printf("%d\n", num);
printf("%d\n", -num);
aaarticlea/png;base64,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" alt="" />
最小负整数则是
int tnum = num - ;
printf("%d\n", tnum);
printf("%d\n", -tnum);
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAG0AAAAoCAIAAAB7D+PeAAAC/0lEQVRoge2Z326bMBTG85rdC2wvsD0iJBlNyN9JMZSQkLRbJxvbkdZcZRcmJA34+Nhkmyb503eB8OGz++OYQtsLCQ1XNCQ0JCwktJ+wZ/b24dOXnpeVghULaxMWJuXec3RQsGLvTNieeo72CggNCA0ICwgLEhYkbM9+eY7WCkn9cFT72nN00pkjvXCknqO9bjgGxHN0Up/Q2oqmkePpyq2j8IXNEF3azUldpTFBtyRkPkr9hPYTGl4Zfj42WQAraw7prgXowPNaZTrkY3UDMUwo3I/w3ECTWnGE6+FZ4Jou+ZBUP15MDBx16wZWUJ9EbrHW+hMiB8nCOR9SP2GVSWXF0fj8gpFZ/WxW+xSYV1esa3x8vlmDlA1SNkgq93HvjxgizcVh7oeu/ubA+X50yYdUQ6wb08gRuT0xo/j6O/a1cz2kYcKGyaUfBwl7/jO/rzvW3+vYNh+rC0S1wVOK4djcpPDm7WmGjK2tm8KYDJy3zUdpmLL3NnD0atcNx0Fq2Nde7fr6VCoPlT1HN0UZv4JYDtPS/1/BRY8Zj1RLppVfPEcHRRmPsjJ6uvil9Bzt9ZhxZc+xk0ZrPsr4KOOPWRllZZSZORrfy+ALmyHwK6dxXsxLq3E9cI5ZozVXrhsT5uj8PdP60gtcCNQjv0MwH0t3+54ZrUXdkqor3Ti6fTy0xhrr4Vngmi75kMa5GOd8vObjc2Pin4/IfqxPIrdYa/0JkYNk4ZwPKc5FnIt4XaEcr/l3/ub//miteCPijYhzEedc+Qc39yOGSHNxmPuhq785cL4fXfIhTTZickEp4lwYOSK3J2YUX3/HvnauhzTdSuXJRsa5NHKE5/v7HG2PbfOxmm3ldFNbTDYojs1NCm/enmbI2Nq6KYzJwHnbfJRmW1l7uhWTrXlfe7XomqPyqzh6jtaaF3JeyJmy5+isRXFQKOeeYxcti8OikItCzreVPUcXLXZysZOLc0vOC/kqjg+eo62Wu0Pdkso/xfHho+doqW87ubx2xfHzv17Xf6bfG+6IxVWZrqwAAAAASUVORK5CYII=" alt="" />
原因是因为有一个0
long long 类型也是如此,正数比负数少一个