Bootstrap

二进制补码计算减法

带符号计算

        任意两个二进制数相减可转化为补码相加运算。一般要计算的是两个无符号数的减法,计算前在原码增加符号位,带符号的目的是便于最终转化为十进制时判断正负。符号位在取补码时不变,但计算时参与计算。计算的二进制结果为去除符号位的补码二进制码字,若要最终十进制结果需变为原码。

示例一:十进制数计算

使用补码计算14-21=-7

        理论计算过程如下:

        使用电脑自带的计算器计算结果如下:

        计算结果的二进制表示中,截取低八位是 1111 1001 ,与理论计算结果的补码相同,验证了计算的二进制结果为去除符号位的补码二进制码字。

示例二:二进制数计算

使用补码计算无符号二进制码  1111 1111 - 1000 0001 

        理论计算过程如下:

        使用电脑自带的计算器计算结果如下:

        使用verilog计算验证代码以及计算结果如下:

always @(posedge clk) begin
    out <= 8'b11111111-8'b10000001;
end

无符号计算

        当然,在只需要进行二进制减法运算时无需还原为十进制,也就不需要考虑正负,则无需增加符号位,直接将减数取反加一转化为加法即可得到计算结果。

示例

使用补码计算无符号二进制码  1111 1111 - 1000 0001 

        因此计算结果为 0111 1110。

悦读

道可道,非常道;名可名,非常名。 无名,天地之始,有名,万物之母。 故常无欲,以观其妙,常有欲,以观其徼。 此两者,同出而异名,同谓之玄,玄之又玄,众妙之门。

;