C语言实现布斯乘法

布斯乘法(百度百科):
对于 N 位乘数 Y,布斯算法检查其2的补码形式的最后一位和一个隐含的低位,
命名为 y[i-1] ,初始值为 0 。对于 y[i], i = 0, 1, ..., N - 1,考察 y[i] 和 y[i - 1 ]。
当这两位相同时,存放积的累加器 P 的值保持不变。当 y[i] = 0 且 y[i - 1] = 1 时,
被乘数乘以 2^i 加到 P 中。当 y[i]= 1 且 y[i - 1] = 0 时,从 P 中减去被乘数乘以
2^i 的值。算法结束后, P 中的数即为乘法结果。
该算法实现有符号数和无符号数相相乘。
#include <stdio.h>

//#define _CRT_SECURE_NO_WARNINGS
//用Visual Studio编译请加上上面这句话否则会报错(scanf函数被VS认为不够安全)

int mul(short int a, short int b)
{
   
	int result = 0x00;					//用来存放部分积以及最终结果
	char current = 0x00;				
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值