首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

*carry = result < n1 || result < n1; 是什么解决思路

2012-02-24 
*carry result n1 || result n1 是什么/*Addtwounsigned32-bitintegers,andcalculatethecarryout.*

*carry = result < n1 || result < n1; 是什么
/*   Add   two   unsigned   32-bit   integers,   and   calculate   the   carry   out.   */

static   uint32
add32   (uint32   n1,   uint32   n2,   int   *carry)
{
    uint32   result   =   n1   +   n2;

    *carry   =   result   <   n1   ||   result   <   n1;                 //就是这句
    return(result);
}

我觉得这句意思是把result <n1的结果和自己   与,然后赋值给carry,
这是什么意思呢,直接传就可以了,为什么还要与呢

[解决办法]
*carry = result < n1 || result < n1;
===============
输入错误了吧
应是
*carry = result < n1 || result < n2;

意思是如果两个数的和比其中一个小,则发生了溢出.
[解决办法]
估计是 这样
result < n1 || result < n2;//这句结果是个逻辑值
无论哪一个条件成立,则必定产生了一个溢出进位,那么就把这个进位(必定是1)给carry
若都不成立,则进位=0。

[解决办法]
carry 保存的是进位的值
(0或者1),结果依赖于那个*carry = result < n1 || result < n2;
可以用10进位加法即可
n1=8,n2=6;
result=4
*carry=1 进位
故结果为:1*10+4=14

热点排行