private string imprimirTelaHexa(string numero, bool hexa) { Conversor con = new Conversor(); string resposta = null; //resultado if (hexa) { return("0x" + con.BinarioParaHexadecimal(con.PontoFlutuanteParaBinario(float.Parse(numero)))); } else { int num = Convert.ToInt32(numero); if (num < 0) { num *= -1; resposta = "-"; } if (num > 255) { return(resposta + con.BinarioParaHexadecimal(con.InteiroParaBinario(24, num))); } else { return(resposta + con.BinarioParaHexadecimal(con.InteiroParaBinario(8, num))); } } }
private int chamarULAinteiro(bool[] f, int a, int b, int tamanho) { Conversor converter = new Conversor(); bool inverteu = false, complemento2A = false, complemento2B = false; bool[] A, B; int resposta; if (b > a && (f[2] & !f[1] & f[0] || f[2] & !f[1] & !f[0])) //caso seja subtração e b > a ele inverte { inverteu = true; int aux = a; a = b; b = aux; } //convertendo pra complemento 2 binario if (a < 0) { a *= -1; complemento2A = true; A = converter.complemento2(converter.InteiroParaBinario(tamanho, a)); } else { A = converter.InteiroParaBinario(tamanho, a); } if (b < 0) { b *= -1; complemento2B = true; B = converter.complemento2(converter.InteiroParaBinario(tamanho, b)); } else { B = converter.InteiroParaBinario(tamanho, b); } if (f[2] & !f[1] & f[0]) //SE SUBTRAÇÃO { B = converter.complemento2(B); } bool overflowSoma; bool[] resultado = new bool[tamanho]; if (tamanho == 8) //8 bits { UnidadeLogica8bits ula = new UnidadeLogica8bits(); overflowSoma = ula.ULA8Bits(A, B, f, resultado); } else //24 bits { UnidadeLogica24bits ula = new UnidadeLogica24bits(); overflowSoma = ula.ULA24Bits(A, B, f, resultado); } if (complemento2A || complemento2B) { resposta = converter.complemento2ParaDecimal(resultado); } else { resposta = converter.BinarioParaInteiro(resultado); } if (inverteu) { resposta *= -1; } return(resposta); }