Sei sulla pagina 1di 7

{

public partial class Form1 : Form


{
public Form1()
{
InitializeComponent();
}
String cadena;
int l, i, cont,r;
private void nudecimal()
{
string cadaBina, Digito;
int I, L;
double Base, Expo, Suma;
cadaBina = txtcelda.Text.Trim();
L = cadaBina.Length;
Suma = 0;
if (rbtbina.Checked == true)
{
Base = 2;
}
if (rbtoctal.Checked == true)
{
Base = 8;
}
else
{
Base = 16;
}
Expo = 0;
for (I = L - 1; I >= 0; I--)
{
Digito = cadaBina.Substring(I, 1);
if (Digito.Equals("A"))
{
Suma = Suma + 10 * Math.Pow(Base, Expo);
Expo++;
}
else
if (Digito.Equals("B"))
{
Suma = Suma + 11 * Math.Pow(Base, Expo);
Expo++;
}
else
if (Digito.Equals("C"))
{
Suma = Suma + 12 * Math.Pow(Base, Expo);
Expo++;
}
else
if (Digito.Equals("D"))
{
Suma = Suma + 13 * Math.Pow(Base, Expo);
Expo++;
}
else

if (Digito.Equals("E"))
{
Suma = Suma + 14 * Math.Pow(Base, Expo);
Expo++;
}
else
if (Digito.Equals("F"))
{
Suma = Suma + 15 * Math.Pow(Base, Expo);
Expo++;
}
else
{
Suma = Suma + int.Parse(Digito) *
Math.Pow(Base, Expo);
Expo++;
}
}
txtcelda.Text = Suma.ToString();
}
public string decAoct(string n)
{
int Residuo,num,Cociente,i;
string Numero = "", NumOctal = "";
num = int.Parse(n);
Cociente = num;
do
{
Residuo = Cociente % 8;
Cociente = (int)(Cociente / 8);
Numero = Numero + Residuo.ToString();
}
while (Cociente >= 8);
Numero = Numero + Cociente;
//invertir la cadena
for (i = (Numero.Length - 1); i >= 0; i--)
{
NumOctal = NumOctal + Numero.Substring(i, 1);
}
return NumOctal;
}
public string decAhexa(string n)
{
int Residuo, num, Cociente, i;
string Numero = "", NumHexa = "";
num = int.Parse(n);
Cociente = num;
do
{
Residuo = Cociente % 16;
Cociente = (int)(Cociente / 16);
switch (Residuo)
{
case 10: Numero = Numero + "A"; break;
case 11: Numero = Numero + "B"; break;
case 12: Numero = Numero + "C"; break;
case 13: Numero = Numero + "D"; break;
case 14: Numero = Numero + "E"; break;

case 15: Numero = Numero + "F"; break;


default: Numero = Numero + Residuo.ToString(); break;
}
}
while (Cociente >= 16);
switch (Cociente)
{
case 10: Numero = Numero + "A"; break;
case 11: Numero = Numero + "B"; break;
case 12: Numero = Numero + "C"; break;
case 13: Numero = Numero + "D"; break;
case 14: Numero = Numero + "E"; break;
case 15: Numero = Numero + "F"; break;
default: Numero = Numero + Cociente.ToString(); break;
}
//invertir la cadena
for (i = (Numero.Length - 1); i >= 0; i--)
{
NumHexa = NumHexa + Numero.Substring(i, 1);
}
return NumHexa;
}
//funcion binaria
public string binario(int num)
{
string ValorBin = "";
int resto;
while (num > 1)
{
resto = num % 2;
num = num / 2;
ValorBin = resto.ToString().Trim() + ValorBin.ToString();
}
ValorBin = num.ToString().Trim() + ValorBin;
return ValorBin;
}
private void proceso()
{
if (rbtoctal.Checked == true)
{
if (txtcelda.Text != "")
{
txtcelda.Text = decAoct(cadena);
}
}
else
if (rbthexa.Checked == true)
{
if (txtcelda.Text != "")
{
txtcelda.Text = decAhexa(cadena);
}
}
else
if (rbtbina.Checked == true)
{

if (txtcelda.Text != "")
{
txtcelda.Text = binario(int.Parse(cadena));
}
}
}
private void btna_Click(object sender, EventArgs e)
{
cadena=txtcelda.Text = cadena +"A";
}
private void btnb_Click(object sender, EventArgs e)
{
cadena = txtcelda.Text = cadena +"B";
}
private void btnc_Click(object sender, EventArgs e)
{
cadena = txtcelda.Text = cadena + "C";
}
private void btnd_Click(object sender, EventArgs e)
{
cadena = txtcelda.Text = cadena + "D";
}
private void btne_Click(object sender, EventArgs e)
{
cadena = txtcelda.Text = cadena + "E";
}
private void btnf_Click(object sender, EventArgs e)
{
cadena = txtcelda.Text = cadena + "F";
}
private void btn0_Click(object sender, EventArgs e)
{
cadena = txtcelda.Text = cadena + "0";
}
private void btn1_Click(object sender, EventArgs e)
{
cadena = txtcelda.Text = cadena + "1";
}
private void btn2_Click(object sender, EventArgs e)
{
cadena = txtcelda.Text = cadena + "2";
}
private void btn3_Click(object sender, EventArgs e)
{
cadena = txtcelda.Text = cadena + "3";
}
private void btn4_Click(object sender, EventArgs e)
{

cadena = txtcelda.Text = cadena + "4";


}
private void btn5_Click(object sender, EventArgs e)
{
cadena = txtcelda.Text = cadena + "5";
}
private void btn6_Click(object sender, EventArgs e)
{
cadena = txtcelda.Text = cadena + "6";
}
private void btn7_Click(object sender, EventArgs e)
{
cadena = txtcelda.Text = cadena + "7";
}
private void bt_Click(object sender, EventArgs e)
{
cadena = txtcelda.Text = cadena + "8";
}
private void btn9_Click(object sender, EventArgs e)
{
cadena = txtcelda.Text = cadena + "9";
}
private void btnflecha_Click(object sender, EventArgs e)
{
cadena = txtcelda.Text.Trim();
l = cadena.Length;
if (txtcelda.Text != "")
{
cadena = cadena.Substring(i, (l - 1));
txtcelda.Text = cadena;
}
}
private void btnce_Click(object sender, EventArgs e)
{
cadena = "";
txtcelda.Text = "";
txtcelda.Focus();
}
private void btnsalir_Click(object sender, EventArgs e)
{
Close();
}
private void rbtbina_CheckedChanged(object sender, EventArgs e)
{
proceso();
btn0.Enabled = true;
btn1.Enabled = true;
btn2.Enabled = false;
btn3.Enabled = false;
btn4.Enabled = false;
btn5.Enabled = false;

btn6.Enabled
btn7.Enabled
btn8.Enabled
btn9.Enabled
btna.Enabled
btnb.Enabled
btnc.Enabled
btnd.Enabled
btne.Enabled
btnf.Enabled

=
=
=
=
=
=
=
=
=
=

false;
false;
false;
false;
false;
false;
false;
false;
false;
false;

}
private void rbtoctal_CheckedChanged(object sender, EventArgs e)
{
//txtcelda.Text = decAoct(cadena);
proceso();
btn0.Enabled = true;
btn1.Enabled = true;
btn2.Enabled = true;
btn3.Enabled = true;
btn4.Enabled = true;
btn5.Enabled = true;
btn6.Enabled = true;
btn7.Enabled = true ;
btn8.Enabled = false;
btn9.Enabled = false;
btna.Enabled = false;
btnb.Enabled = false;
btnc.Enabled = false;
btnd.Enabled = false;
btne.Enabled = false;
btnf.Enabled = false;
}
private void rbtdecimal_CheckedChanged(object sender, EventArgs e)
{
if (txtcelda.Text != "")
{
txtcelda.Text = cadena.ToString();
}
//
proceso();
btn0.Enabled = true;
btn1.Enabled = true;
btn2.Enabled = true;
btn3.Enabled = true;
btn4.Enabled = true;
btn5.Enabled = true;
btn6.Enabled = true;
btn7.Enabled = true;
btn8.Enabled = true;
btn9.Enabled = true;
btna.Enabled = false;
btnb.Enabled = false;
btnc.Enabled = false;
btnd.Enabled = false;
btne.Enabled = false;
btnf.Enabled = false;
}

private void rbthexa_CheckedChanged(object sender, EventArgs e)


{
proceso();
//txtcelda.Text = decAhexa(cadena);
btn0.Enabled = true;
btn1.Enabled = true;
btn2.Enabled = true;
btn3.Enabled = true;
btn4.Enabled = true;
btn5.Enabled = true;
btn6.Enabled = true;
btn7.Enabled = true;
btn8.Enabled = true;
btn9.Enabled = true;
btna.Enabled = true;
btnb.Enabled = true;
btnc.Enabled = true;
btnd.Enabled = true;
btne.Enabled = true;
btnf.Enabled = true;
}
private void Form1_Load(object sender, EventArgs e)
{
}
}
}

txtcelda

Todos son btn segn la letra


va por ejemplo:
Btna btnb btn1 btn2

Aki estn los rbtn por


ejemplo rbthexadecimal
rbtdecimal

Potrebbero piacerti anche