class Program
    {
        static void Main(string[] args)
        {
            char x = 'a', y = 'b';
            int z;
            z = (x << 8) | y;
            Console.WriteLine("z左移动8位,在和y进行按位于后结果为{0}",z);        }
    }
最后结果为24930,怎么算来的,还有就是按位于的符号不是:&  怎么会是|  呢????

解决方案 »

  1.   

    'a'就是97 //可以通过(int)'a'知道。
    'b'就是98x='a'二进制为:0000000001100001
    y='b'二进制为:0000000001100010
    x左移8位后二进制为:0110000100000000
    或y后为:0110000101100010Text = Convert.ToInt32("0110000101100010", 2).ToString(); //24930|是或,也可以看成加法,“和”...
    你说的&是“与”...
      

  2.   

      (1) 这个"&"叫做逻辑"和(与)"按位运算符; 这个"|"叫做逻辑"或"按位运算符.  (2) 因为字符'a'和字符'b'的数值分别为97,98.用二进制表示就是: 01100001, 01100010.  (3) 因为char字符占2个字节,即十六个位,因此x按位左移8位后其二进制值为:0110000100000000 
    这里特别必须注意,因为char占2个字节,若x是byte类型的话,byte仅占一个字节,即八位.  01100001 左移8位后得00000000.(范围以外的都被截掉了)  (4)或运算:   0110000100000000
                  0000000001100010           得  0110000101100010            运成十进制即得: 24930