如何确定各种类型的取值范围?
1.最大值:最高位(符号位)为0,其余为1.
char_max = (char)(((unsigned char) ~0) >> 1);
说明:
~0:取反,使其没一位都为1,一个多少位,这就由硬件决定了,一般是32位。
(unsigned char) ~0:获得8位的数值
((unsigned char) ~0) >> 1:清除符号位,虽然符号位是最高位,但由于所有位都是1,故怎么移位都行。
(char)(((unsigned char) ~0) >> 1):强转,得到char类型能表示的的最大值
2.最小值:最高位为1,其余为0.
char_max = ~(char)(((unsigned char) ~0) >> 1); //原理同上
本文介绍了如何通过位运算和类型转换确定char类型的最大值和最小值。具体步骤包括使用按位取反操作符获得全1的二进制表示,然后通过右移位清除符号位,并最终将结果转换为char类型。
879

被折叠的 条评论
为什么被折叠?



