gpt4 book ai didi

algorithm - 二进制数比较

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:04:51 25 4
gpt4 key购买 nike

如果我有一个 32 位二进制补码数,并且我想知道知道两个数是否相等的最简单方法是什么...知道这个的最快按位运算符是什么?我知道对两个数字进行异或运算并检查结果是否为零效果很好……还有其他的吗?

如果数字大于 0 怎么办?我可以检查第 31 位以查看它是否大于或等于 0..但是 bgtz 呢?

最佳答案

与您的评论相反,'==' 是 Verilog 的一部分,除非我今晚的内存力比平时差很多,否则它应该可以很好地合成。举个例子,你可以这样写:

// warning: untested, incomplete and utterly useless in any case.
// It's been a while since I wrote much Verilog, so my syntax is probably a bit off
// anyway (might well be more like VHDL than it should be).
//
module add_when_equal(clock, a, b, x, y, z);
input clock;
input [31:0] a, b, x, y;
output [31:0] z;
reg [31:0] a, b, x, y, z;

always begin: main
@(posedge clock);
if (a == b)
z <= x + y;
end
endmodule;

Verilog 还支持您通常期望的其他比较运算符(!=、<= 等)。合成器相当“智能”,所以像 x != 0 这样的东西通常会合成一个 N 输入或门而不是一个比较器。

关于algorithm - 二进制数比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2778280/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com