-4

我正在尝试 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

255因为一个字节中的所有位都为二进制的无符号表示打开,所以将任何单字节值与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 回答
2

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

于 2011-12-06T01:01:47.013 回答
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 回答