-4

私は2つの差の2進数をANDしようとしています。これまでのところ、それが私のコードです(ここでレイアウトが正しいかどうかわからないので、pastebinに投稿しました) http://pastebin.com/FRT6Qig6

私の問題は、自分の答えがどうあるべきかを理解していないことです。または、私のコードが正しいことをしている場合でも。

namespace ConsoleApplication1 {
    class Two {
        public void run() {
            byte a = 255;
            byte b = 85;
            byte c;

            a = Convert.ToByte("10101111", 2);  //85
            b = Convert.ToByte("011111111", 2); //255

            c = (byte) (a & b);

            Console.WriteLine
                ("ANDing two bytes  - decimal:{0:D3}  hex:{0:x2}  binary:{1}",
                 c, Convert.ToString(c, 2));

            //wait until next press
            Console.ReadKey();
        }
    }
}
4

3 に答える 3

2

http://www.wolframalpha.com/input/?i=255+%26+85

于 2011-12-06T01:01:47.013 に答える
2

1 バイトのすべてのビットが2552 進数の符号なし表現で有効になるため、任意の 1 バイト値をAND 演算する255と、入力が変更されずに返されます。

0x1 & 0xFF == 0x1
0x2 & 0xFF == 0x2
..
0xFE & 0xFF == 0xFE
0xFF & 0xFF == 0xFF

AND は、いずれかの値ですべてのビットがオンになっていない場合にのみ、より興味深いものになります。

0101 0101 & 0000 1111 == 0000 0101
于 2011-12-06T01:02:47.887 に答える
0

私の答えは何ですか?

私は先に進み、この質問に答えます

A AND B の真理値表は次のとおりです。

AB値
1 1 1
1 0 0
0 1 0
0 0 0

A OR B の真理値表は次のとおりです。

AB値
1 1 1
1 0 1
0 1 1
0 0 0

于 2011-12-06T14:13:32.650 に答える