所谓的经典乘法就是在小学的时候学到的那一套做乘法的方法。如果假设被乘数a和乘数b为:
, …………(1.1)
则经典乘法是这样做的:
。 …………(1.2)
即分别做a×bi,再累加到r上。
算法如下:(参见[1]算法14.12)
───────────────────────────────────────
算法: 经典乘法
step1: 对i从0到(m+n-1),令ri←0。
step2: 对j从0到n-1,执行如下运算:
2.1) c←0。
2.2) 对于i从0到m-1,
2.2.1) 计算
| …………(1.3) 这里的h32表示h为32比特,h16表示h为16比特,其余同理。 说明(2)、(3)可归纳为下表: 函数名称 | 数学表达式 | 调用情况 | mul (r, a, bl, bh, c ) | | | | 最底层 |
表1.2 bn_mul、bn_mul_add与mul64的比较 关于上述函数与宏定义的关系请参见§1.2.3。 当乘数退化成一个字的时候,可以使用大整数与字的乘法。 ─────────────────────────────────────── BN_ULONG bn_mul_word(BIGNUM *a, BN_ULONG w) 功能: 大数与字的乘法 输入: a【大数】,w【字】 输出: a←a×w 返回: 1【正常】 or 0【出错】 出处: bn_word.c ─────────────────────────────────────── 注意:这个函数的名称bn_mul_word和前面提到的bn_mul_words(见本小节对经典乘法函数bn_mul_normal的说明(1))很相似,功能也有些相似,都可以看作是做大整数(前者对应BIGNUM *而后者对应BN_ULONG *)与字的乘法。bn_mul_word(a,w)是做大整数与字的乘法a←a×w,而bn_mul_words 主要是被乘法运算调用,作为一个内部子函数来调用,基本上没有作为独立的函数在用。请注意区别。
推荐阅读
-
本文介绍了一款基于瑞萨RH850微控制器、TICC2640R2F蓝牙微控制器和高通MDM9628处理器的T-BOX车载终端的设计。该终端通过集成CAN总线、GPS定位、数据加密、蓝牙通信和LTE无线数据传输技术,实现了车辆信息的高效采集与云端通信,支持远程车辆控制和诊断等功能。 ...
[详细]
蜡笔小新 2024-12-11 13:26:53
-
本文详细介绍了如何在ARM架构的目标设备上部署SSH服务端,包括必要的软件包下载、交叉编译过程以及最终的服务配置与测试。适合嵌入式开发人员和系统集成工程师参考。 ...
[详细]
蜡笔小新 2024-11-20 14:13:38
-
-
本文详细介绍了Android系统的四层架构,包括应用程序层、应用框架层、库与Android运行时层以及Linux内核层,并提供了如何关闭Android系统的步骤。 ...
[详细]
蜡笔小新 2024-11-19 09:04:28
-
本文探讨了中国各主要城市Python工程师的薪资水平,并对工程机械行业中多种机械设备操作员的薪资进行了详细分析。通过对比不同设备的操作难度和技术要求,为有意进入该领域的求职者提供了参考。 ...
[详细]
蜡笔小新 2024-12-11 21:42:32
-
本文将详细介绍Kafka的内部工作机制,包括其工作流程、文件存储机制、生产者与消费者的具体实现,以及如何通过高效读写技术和Zookeeper支持来确保系统的高性能和稳定性。 ...
[详细]
蜡笔小新 2024-12-11 19:55:40
-
本文由58同城高级架构师于伯伟分享,由陈树昌编辑整理,内容源自DataFunTalk。文章探讨了Elasticsearch作为分布式搜索和分析引擎的应用,特别是在58同城的实施案例,包括集群优化、典型应用实例及自动化平台建设等方面。 ...
[详细]
蜡笔小新 2024-12-11 19:31:21
-
本文详细介绍了如何在Ubuntu 16.04系统上通过Anaconda环境管理工具安装TensorFlow。首先,需要下载并安装Anaconda,然后配置环境变量以确保系统能够识别Anaconda命令。接着,创建一个特定的Python环境用于安装TensorFlow,并通过指定的镜像源加速安装过程。最后,通过一个简单的线性回归示例验证TensorFlow的安装是否成功。 ...
[详细]
蜡笔小新 2024-12-11 19:07:39
-
在日常浏览微信时,我们经常能见到各类新媒体影响力排行榜。其中,最后一列的WCI指标常引起人们的好奇。本文将深入解析WCI的含义及其计算方法,并通过Python代码实例展示如何计算WCI V14.2。 ...
[详细]
蜡笔小新 2024-12-11 18:58:32
-
本文详细解析了机器学习领域中常用的性能评估指标——查准率、查全率及其综合评价指标F1分数,通过具体案例分析这些指标在实际应用中的重要性和差异。 ...
[详细]
蜡笔小新 2024-12-11 18:55:10
-
本文探讨了对称加密与非对称加密的主要区别,重点分析了非对称加密中的公钥体系及其在解决密钥分发问题上的优势。对称加密依赖单一密钥进行加密解密,而非对称加密则采用一对公私钥来完成安全通信。 ...
[详细]
蜡笔小新 2024-12-11 17:16:36
-
聚焦法是一种采用穷尽搜索策略的Filter型特征选择方法,其核心在于寻找能有效区分不同样本的最小特征集合。此方法的评估标准主要依赖于一致性测量。 ...
[详细]
蜡笔小新 2024-12-11 15:12:58
-
Serato 最近为其 DJ 软件推出了全新的 Stems 功能,使得用户能够轻松地将音乐中的不同部分如人声、旋律、贝斯和节奏进行分离,为音乐创作和现场表演提供了更多可能性。 ...
[详细]
蜡笔小新 2024-12-11 15:00:08
-
本文详细介绍了WebRTC提供的音频处理引擎,包括自动增益控制(AGC)、噪声抑制(ANS)、移动设备声学回声消除(AEC)及静音检测(VAD)等核心算法,并提供了完整的C语言实现代码。 ...
[详细]
蜡笔小新 2024-12-11 14:56:39
-
最近在深入学习《数据结构与算法–JavaScript描述》一书,尝试通过npmjs.org寻找合适的库作为参考,但未能找到完全符合需求的资源。因此,决定自行实现一个字典数据结构,以便日后能够直接应用。 ...
[详细]
蜡笔小新 2024-12-11 13:30:03
-
本文作为Navicat Premium用户管理系列的第二部分,主要介绍如何创建新的MySQL用户,包括设置基本账户信息、密码策略、账户限制以及SSL配置等。 ...
[详细]
蜡笔小新 2024-11-26 19:43:05
-
|