首先需要说明的一点是,在本文中最大最小整数值指的是int类型(在大多数平台和编译器下是4个字节)能够表示的最大整数和最小整数。
在本文中,我们只介绍用编程方式得到int类型能够表示的最大最小整数值。表示方法如下:
#define MAX_INT ((unsigned)(-1)>>1)
#define MIN_INT (~MAX_INT)
但是在Ubuntu环境下的CodeBlocks下,打出上面的MAX_INT和MIN_INT,为2147483647,而MIN_INT为2147483648。
因为上述定义的宏是没有类型的符号,在使用的时候会陷入困境。
而解决的办法是将宏强制转化为某种类型,(int)MAX_INT,(int)MIN_INT。
一个比较好的方法是直接定义变量
int MAX_INT = ((unsigned)(-1)>>1)
int MIN_INT = (~MAX_INT)
在这里,需要补充的一点是编码的知识。以一个字节为例,其能够表示的整数范围为[-128, 127]。其中0为0000 0000,-128为1000 0000,127为0111 1111。