二进制的加减乘除法全了看一下叭


前言

最近在学习通信网络中的CRC算法,所以积累一下二进制的各种算法,如果对您有用,记得点个赞喔!谢谢啦。


一、二进制加法

对于二进制加法和十进制的加法本质上是一样的,只是前者逢2进1,后者逢10进1。

我们以0111+1110为例:
在这里插入图片描述

二、二进制减法

在这里插入图片描述

三、二进制乘法

二进制乘法需要先消化一下二进制加法,这样会更好一点。
在这里插入图片描述

四、二进制除法

在这里插入图片描述

总结

二进制的运算和十进制是一回事,只要记住一句话就可:
二进制中,进位、借位时2为单位。
十进制中以10为单位。

### 使用C语言实现二进制数乘 在C语言中,可以直接利用`*`运算符来完成二进制形式下的整数相乘操作。然而当处理的是字符串形式表示的二进制数时,则需先将其转换为十进制再执行乘,并最终把结果转回二进制格式显示[^1]。 对于更复杂的场景下,比如直接针对字符数组存储的二进制串做乘,有专门编写的函数用于此目的: ```c void binaryMultiplication(char *num1, char *num2, char *result) { int decimal1 = binaryToDecimal(num1); int decimal2 = binaryToDecimal(num2); int product = decimal1 * decimal2; decimalToBinary(product, result); } ``` 上述代码片段展示了如何定义一个名为`binaryMultiplication`的过程,它接收三个参数:前两者是要相乘的二进制字符串,最后一个是指向保存乘积结果位置的指针变量。内部通过辅助性的`binaryToDecimal()`与`decimalToBinary()`这两个子程序完成了整个流程中的数值体系变换工作[^4]。 ### 实现二进制数除 关于二进制,在实际编程实践中通常也是遵循类似的思路——即将参与运算的操作数由原始的二进制表达方式转变为更容易处理的数据形态(即十进制),之后运用标准算术指令实施具体的商求解动作;待得到确切答案后,再逆向变换成目标编码方案以便输出展示给用户查看[^5]。 下面给出一段简单的示范代码用来说明这一过程: ```c #include <stdio.h> #include <stdlib.h> int binaryToDecimal(const char*); char* decimalToBinary(int); void binaryDivision(char *dividendStr, char *divisorStr){ // Convert from binary string to integer value. int dividend = binaryToDecimal(dividendStr); int divisor = binaryToDecimal(divisorStr); if (divisor == 0){ printf("Error! Division by zero.\n"); exit(EXIT_FAILURE); } // Perform division and get quotient as an integer. int quotient = dividend / divisor; // Convert the resulting quotient back into its binary representation. char *quotientBinRep = decimalToBinary(quotient); // Print out or use 'quotientBinRep' further... } // Dummy implementations of conversion functions for illustration purposes only. int binaryToDecimal(const char* binStr){ /* ... */ } char* decimalToBinary(int decNum){ /* ... */ } ``` 这段示例不仅包含了基本框架结构还特别加入了异常情况判断部分(如被零除错误)。值得注意的是,为了保持例子简洁明了,这里省略掉了具体实现细节有关于`binaryToDecimal`以及`decimalToBinary`两个工具方的具体算描述。
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

江南霹雳堂雷家雷无桀

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值