PDA

View Full Version : محاسبات بیتی



majid_i68
شنبه 28 دی 1392, 11:38 صبح
سلام
بنده یه برنامه نوشتم به این صورت که دوعدد از ورودی میگیره و اعمال and و or , و ... روشون انجام میده
با عملگرهای بیتی آشنایی دارم ولی نمیدونم چرا برنامه برای بعضی محاسبات جواب غلط میده

کد رو ببینید


private void button1_Click(object sender, EventArgs e)
{
//AND
long number1 = Convert.ToInt32(txtNumber1.Text);
long number2 = Convert.ToInt32(txtNumber2.Text);
label3.Text = (number1 & number2).ToString();


}

private void button2_Click(object sender, EventArgs e)
{
//Or
int number1 = Convert.ToInt32(txtNumber1.Text);
int number2 = Convert.ToInt32(txtNumber2.Text);
label4.Text = (number1 | number2).ToString();
}

private void button3_Click(object sender, EventArgs e)
{
// Xor
int number1 = Convert.ToInt32(txtNumber1.Text);
int number2 = Convert.ToInt32(txtNumber2.Text);
label6.Text = (number1 ^ number2).ToString();
}

private void Form1_Load(object sender, EventArgs e)
{

}

private void textBox2_TextChanged(object sender, EventArgs e)
{
string a = textBox2.Text;
string b = string.Join(string.Empty,
a.Select(c => Convert.ToString(Convert.ToInt32(c.ToString(), 10), 2).PadLeft(4, ('0'))));
label8.Text = b;

}

private void button4_Click(object sender, EventArgs e)
{
//XNOR
int number1 = Convert.ToInt32(txtNumber1.Text);
int number2 = Convert.ToInt32(txtNumber2.Text);
label5.Text = (~(number1 ^ number2)).ToString();

}

مثلا وقتی دو عدد 1000 و 10010 بهش میدم
and میشه 766
or میشه 10234
xor میشه 1
xnor میشه -2

چرا جواب رو باینری نمیده؟؟؟

FastCode
شنبه 28 دی 1392, 12:17 عصر
برای اینکه ورودیتون باینری نیست.

برای آزمایش باید بدید ۸ و ۱۸ نه ۱۰۰۰ و ۱۰۰۱۰

majid_i68
شنبه 28 دی 1392, 12:32 عصر
منظورتون رو متوجه نمیشم... خب من میخوام اعداد رو به صورت باینری وارد کنم

majid_i68
شنبه 28 دی 1392, 12:34 عصر
اگر بدم 8 و 18 ... خروجی میده
0
26
26
-27

خب من میخوام خروجی به صورت باینری باشه

Mahmoud.Afrad
شنبه 28 دی 1392, 14:33 عصر
byte b1 = 8;
byte b2 = 18;
textBox1.Text = Convert.ToString(b1 | b2, 2).PadLeft(8, '0');