Írjunk programot, amely egy pozitív egész számot átalakít bináris számmá és megszámlálja a bitek számát.
A feladat megoldása:
static string Konvertáló(int szám)
{
const uint ALAP = 2;
uint maradék, decimális = (uint)szám;
string bináris = "";
while (decimális != 0)
{
maradék = decimális % ALAP;
bináris = maradék.ToString() + bináris;
decimális = decimális / ALAP;
}
return bináris;
}
static uint BitSzámláló(uint n)
{
uint b = 0;
for (; n != 0; n >>= 1)
{
if ((n | 1) != 0)
b++;
}
return b;
}
private void button1_Click(object sender, EventArgs e)
{
int adat;
uint db, x;
string bin;
if (textBox1.Text != "" )
{
adat = Int32.Parse(textBox1.Text);
if (adat > 0)
{
x = (uint)adat;
bin = Konvertáló(adat);
textBox2.Text = bin;
db = BitSzámláló(x);
textBox3.Text = db.ToString();
}
else
{
MessageBox.Show("A szám 0 vagy negatív!",
"Üzenet");
textBox1.Text = "";
}
}
}
private void textBox1_TextChanged(object sender, EventArgs e)
{
textBox2.Text = ""; textBox3.Text = "";
}
A program futási eredményei: