用Java语言模拟有符号位乘法

用Java语言模拟有符号位乘法,java,binary,Java,Binary,我正在尝试创建一个java模拟器,它将模拟4位数字的所有可能的有符号乘法 我的代码布局使用字符来表示实际的位 我现在的问题是逐位分解我的int输入(被乘数/乘法器),将每一位放入一个新的字符中,这样我就可以操纵每个字符(即位)来执行有符号乘法 非常感谢您的指点 public class SignedMultiplication { int multiplicand, multiplier, expected_product, actual_product; char md_bit0, md_b

我正在尝试创建一个java模拟器,它将模拟4位数字的所有可能的有符号乘法

我的代码布局使用字符来表示实际的位

我现在的问题是逐位分解我的int输入(被乘数/乘法器),将每一位放入一个新的字符中,这样我就可以操纵每个字符(即位)来执行有符号乘法

非常感谢您的指点

public class SignedMultiplication {

int multiplicand, multiplier, expected_product, actual_product;
char md_bit0, md_bit1, md_bit2, md_bit3, mr_bit0, mr_bit1, mr_bit2, mr_bit3;
char pr_bit0, pr_bit1, pr_bit2, pr_bit3, pr_bit4, pr_bit5, pr_bit6, pr_bit7;

for(multiplicand=-8;multiplicand<8;++multiplicand){

// set multiplicand bits for two's complement 
md_bit0 = ;
md_bit1 = ;
md_bit2 = ;
md_bit3 = ;

    for(multiplier = -8; multiplier < 8; ++multiplier){

    // set multiplier bits for two's complement 
    mr_bit0 = ;
    mr_bit1 = ;
    mr_bit2 = ;
    mr_bit3 = ;

    // perform 4 bit multiplier operation
    // result is in pr_bit0 through pr_bit7

    // set actual product to value converting 2's complement to an integer
    actual_product = ;

    expected_product = multiplicand * multiplier;

        if( expected_product != actual_product ){
            System.out.println("Multiplicand: " + multiplicand + " Multiplier: " + multiplier + 
                    " Expected Result: " + expected_product + " Obtained: " + actual_product );
        }
    }
}
公共类签名乘法{
整数被乘数,乘数,预期乘积,实际乘积;
字符md_比特0、md_比特1、md_比特2、md_比特3、mr_比特0、mr_比特1、mr_比特2、mr_比特3;
字符比特0、比特1、比特2、比特3、比特4、比特5、比特6、比特7;
对于(被乘数=-8;被乘数