void fun(int m)
{
if(m<2)
else fun(m/2)
printf("%d",m%2)
}
int main()
{
int n
printf("INPUT NUMBER n:\n")
scanf("%d",&n)
fun(n)
printf("\n")
return 0
}
自己写的,编译运行通过
当然你说的也对,但是我们也可以走点弯路。定义最大值 最小值都是16位,比如max=32767min=-32768 将运算结果存入32变量中,然后与max min 做比较看是否溢出不就可以了
例子:
int a
short int b=32767
a=b++
if(a>max){
溢出
}
else b=a
a声明的是无符号整数,赋了32768后,值应该是10000000 00000000.但%d是把参数当成有符号整数来输出.所以把10000000 00000000看成是负数补码的话,就对应负数-32768