当前位置:编程学习 > C/C++ >>

c语言怎么判断大于32767的,或者小于-32768的?

对于一个16位有符号数,c语言通常用》32767或者小于-32768来判断结果是否益处,我想问的是,对于有符号数的32767+1之后不就变成-32768了吗,那么If(x>32676)还怎么判断?同理-32768-1就等于+1了,还怎么用If(x<-32678)来判断溢出。
补充:这个不是c语言本身的功能,而是自己编的程序,但是还真有用
追问:实际过程中是没有放在32位的 用if语句也能成功 为什么?
答案:当然你说的也对,但是我们也可以走点弯路。定义最大值 最小值都是16位,比如max=32767
min=-32768  将运算结果存入32变量中,然后与max min 做比较看是否溢出不就可以了
例子:
int a;
short int b=32767;
a=b++;
if(a>max){
溢出
}
else b=a;
其他:C语言根本就不判断溢出吧,有程序例子么? 把那个数定义为长整形的,在与32767那些数比较就行了 我可以给你提供一个思路,可以使用数字和字符的转化,将数字转化成为字符,例如123456这样的一个数,我们可以将它的每一位转化成为字符,比较每一个位上的字符,如果一样就看下一位,不一样就可以得到结果.因为你需要的是16位有符号数,道理也是一样的,希望对你有帮助

上一个:c语言 文件操作中输入和输出的问题
下一个:c语言编程求素数!高手速来解答啊!

CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,