OpenSSL密码库算法笔记——第1.1.2章 带符号的加减法

本文详细介绍了带符号的加减法运算规则及其在大数处理中的应用,包括大数加法与减法的实现原理及具体函数的使用方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

带符号的加减法就是在绝对值加减法的基础上考虑a、b的符号。具体说来就是,带符号的加法的执行规则是:

(  a)+(  b) <=>  a+b; (-a)+(-b)    <=> -(a+b);

(  a)+(-b)        <=>  a-b; (-a)+(  b)    <=>     b-a ;

───────────────────────────────────────

int BN_add(BIGNUM *r, const BIGNUM *a, const BIGNUM *b)

功能:    大数加法

输入:    a,b

输出:    r=a+b

返回:    1【正常】or 0【出错】

出处:    bn_add.c

───────────────────────────────────────

带符号的减法既需要象带符号的加法那样考虑a、b的符号,又需要比较 |a| 和 |b| 的大小关系。比较 |a| 和 |b| 的大小可以利用int BN_ucmp(const BIGNUM *a, const BIGNUM *b) 函数实现,函数返回值为正数(|a|大)或0(相等)或负数(|b|大),详情参见§0.2.3

───────────────────────────────────────

int BN_sub(BIGNUM *r, const BIGNUM *a, const BIGNUM *b)

功能:    大数减法

输入:    a,b

输出:    r=a-b

返回:    1【正常】or 0【出错】

出处:    bn_add.c

───────────────────────────────────────

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值