ANDing无符号二进制表示

时间:2011-12-06 00:51:10

标签: c# binary bit-manipulation computer-architecture

我正在尝试和两个不同的二进制数。 到目前为止这是我的代码(我发布到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();
        }
    }
}

3 个答案:

答案 0 :(得分:2)

答案 1 :(得分:2)

因为字节中的所有位都以二进制的255的无符号表示形式打开,所以使用255 ANDing 任何单字节值将返回您的输入< EM>不变:

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

只有当其中一个值没有打开时,才会变得更有趣:

0101 0101 & 0000 1111 == 0000 0101

答案 2 :(得分:0)

  

我的答案应该是什么?

我会继续回答这个问题

A和B的真值表如下:

A B值
1 1 1
1 0 0
0 1 0
0 0 0

A OR B的真值表如下:

A B值
1 1 1
1 0 1
0 1 1
0 0 0

相关问题