错在哪 里??
#include <stdio.h>
long sign(int bit);
/* 打印各类型取值范围 版本2 */
main()
{
int lo; /* 定义: lo = long */
lo = 32; /* 各类型的位数 */
printf ("signed long的取值范围 %ld---%ld\n",sign(lo),sign(lo)-1);
return 0;
}
/* sign 函数:计算2的n-1次方,并返回其数值 */
long sign(int bit)
{
int i, u;
u = 2;
for (i = 2; i <= bit - 1; ++i)
u = u * 2;
return u;
}
为什么输出为 0 -- -1。错在哪 里,请各位帮忙修改一下!!