如何用C语言处理长整形溢出问题??各位高手指点指点!!

[复制链接]
查看11 | 回复2 | 2012-6-17 21:12:18 | 显示全部楼层 |阅读模式
以加法(溢出一位)情况举例, 判断两个加数的符号和相加结果的符号1)如果两个加数符号相反,则断定无溢出.2)如果两个加数符号相同且与计算结果同号,也可以断定没有溢出.3)如果两个加数符号相同且与计算结果相反,则分两种情况加数的符号为正相加结果为负数, 说明计算结果中本来最高位为符号位因为溢出置1,这种情况可以用unsigned long * 指针获取计算结果.比如,
long c = a + b; if(a > 0 && b > 0 && c < 0) {
unsigned long * pValue = (unsigned long *)&c;
printf("result ...
回复

使用道具 举报

千问 | 2012-6-17 21:12:18 | 显示全部楼层
用于计算的算 就要用到模拟高精度了 如果是中间结果溢出的话就注意一下计算顺序...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行