public bool Run(bool[] A, bool[] B, bool F0, bool carryIn, out bool carryOut) { bool M0; bool[] M1 = new bool[23]; bool[] M2 = new bool[8]; // Início bit de sinal M0 = A1.Run(A[0], B[0], true, false, F0, carryIn, out carryOut); // Fim bit de sinal // Início mantissa fracionária bool[] IA23 = new bool[23]; bool[] IB23 = new bool[23]; for (int i = 0, aux = 1; i < 24; i++, aux++) { IA23[i] = A[aux]; IB23[i] = B[aux]; } M1 = A23.Run(IA23, IB23, true, false, F0, carryIn, out carryOut); // Fim mantissa fracionária // Início expoente polarizado bool[] IA8 = new bool[8]; bool[] IB8 = new bool[8]; for (int i = 0, aux = 25; i < 8; i++, aux++) { IA8[i] = A[aux]; IB8[i] = B[aux]; } M2 = A8.Run(IA8, IB8, true, false, F0, carryIn, out carryOut); // Fim expoente polarizado return(false); }
private void button1_Click(object sender, EventArgs e) { int bitsAmount = 23; bool[] a = Conversor.ConvertSringToBool(Conversor.ConvertDecimalTo(input_a.Text, 2), bitsAmount); bool[] b = Conversor.ConvertSringToBool(Conversor.ConvertDecimalTo(input_b.Text, 2), bitsAmount); bool[] f = Conversor.ConvertSringToBool(input_op_code.Text, 3); bool cO; bool[] res = new bool[bitsAmount]; res = alu.Run(a, b, f[0], f[1], f[2], false, out cO); a_binary.Text = Conversor.ConvertBoolToString(a); b_binary.Text = Conversor.ConvertBoolToString(b); result_binary.Text = Conversor.ConvertBoolToString(res); result_decimal.Text = Conversor.ConvertBaseToDecimal(result_binary.Text, 2); }
public static bool[] ConvertBoolToNegativeBool(bool[] value) { if (value.Length != 23) { throw new Exception("Value given must be have a word of length 23"); } bool[] valueToReturn = new bool[23]; for (int i = 0; i < value.Length; i++) { valueToReturn[i] = !value[i]; } bool[] numToSum = new bool[23]; numToSum[0] = true; bool[] opCode = { false, false, true }; bool ca; ALU23bits aluAux = new ALU23bits(); valueToReturn = aluAux.Run(valueToReturn, numToSum, opCode[0], opCode[1], opCode[2], false, out ca); return(valueToReturn); }