二进制除法

二进制除法

1. 除法

每一步做减法

在这里插入图片描述

2. 模2除法

异或的数学符号为“⊕”,计算机符号为“xor”。其运算法则为:

a⊕b = (¬a ∧ b) ∨ (a ∧¬b)

如果a、b两个值不相同,则异或结果为1。如果a、b两个值相同,异或结果为0。
异或也叫半加运算,其运算法则相当于不带进位的二进制加法:二进制下用1表示真,0表示假,则异或的运算法则为:

0⊕0=0, 1⊕0=1, 0⊕1=1, 1⊕1=0(同为0,异为1)

这些法则与加法是相同的,只是不带进位。
异或略称为XOR、EX-OR
程序中有两种演算子:XOR、⊕。
使用方法如下

z = x ⊕ y
z = x xor y

在这里插入图片描述

每一步做异或在这里插入图片描述
参考文章1链接:https://blog.csdn.net/e891377/article/details/85036212
参考文章2链接:https://blog.csdn.net/u010190210/article/details/80707698
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个简单的Verilog代码实现二进制除法: ```verilog module binary_divide(dividend, divisor, quotient, remainder); input [7:0] dividend; // 被除数,8位二进制数 input [7:0] divisor; // 除数,8位二进制数 output [7:0] quotient; // 商,8位二进制数 output [7:0] remainder; // 余数,8位二进制数 reg [7:0] temp_dividend; // 存储被除数 reg [7:0] temp_divisor; // 存储除数 reg [7:0] temp_quotient; // 存储商 reg [7:0] temp_remainder; // 存储余数 reg [3:0] i; // 循环计数器 initial begin temp_dividend = dividend; temp_divisor = divisor; temp_quotient = 8'b0; // 初始化商为0 temp_remainder = temp_dividend; // 初始化余数为被除数 end always @(*) begin for (i = 3; i >= 0; i = i - 1) begin temp_remainder = temp_remainder << 1; // 余数左移1位 if (temp_remainder >= temp_divisor) begin // 如果余数大于等于除数 temp_remainder = temp_remainder - temp_divisor; // 余数减去除数 temp_quotient[i] = 1; // 商的当前位为1 end end end assign quotient = temp_quotient; assign remainder = temp_remainder; endmodule ``` 这个代码使用了一个简单的循环来计算商和余数。首先,被除数和除数被存储在reg类型的变量中。然后,商和余数都被初始化为0和被除数。接下来,使用一个循环计算商和余数。在每次循环中,余数左移1位,如果余数大于等于除数,则将余数减去除数,并将商的当前位设置为1。最终,计算得到的商和余数被输出。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值