问:
怎么表示二进制数?
比如:表示一个为01000001的二进制数据  
byte b = 01000001;   
以上写法我想不正确,正确的该怎么写呢?问:
一个byte&byte 的运算结果类型是?
byte b1 = 1;
byte b2 = 2;
b1 & b2 的结果怎么不是byte类型,而是int类型?为什么?

解决方案 »

  1.   

    byte 是8位的无符号整数。C#只有16进制和10进制表示常数的方法(不太确定),把相应2进制换算成16进制,比如
    byte b=0xFF; //等价于b=255byte & byte的类型还是byte类型。byte + byte的类型应该是ushort,因为加法会产生进位,而&运算不会。
      

  2.   

    using System;
    using System.Collections;
    public class SamplesBitArray  {   public static void Main()  {      // Creates and initializes several BitArrays.
          BitArray myBA1 = new BitArray( 5 );      BitArray myBA2 = new BitArray( 5, false );      byte[] myBytes = new byte[5] { 1, 2, 3, 4, 5 };
          BitArray myBA3 = new BitArray( myBytes );      bool[] myBools = new bool[5] { true, false, true, true, false };
          BitArray myBA4 = new BitArray( myBools );      int[]  myInts  = new int[5] { 6, 7, 8, 9, 10 };
          BitArray myBA5 = new BitArray( myInts );      // Displays the properties and values of the BitArrays.
          Console.WriteLine( "myBA1" );
          Console.WriteLine( "\tCount:    {0}", myBA1.Count );
          Console.WriteLine( "\tLength:   {0}", myBA1.Length );
          Console.WriteLine( "\tValues:" );
          PrintValues( myBA1, 8 );      Console.WriteLine( "myBA2" );
          Console.WriteLine( "\tCount:    {0}", myBA2.Count );
          Console.WriteLine( "\tLength:   {0}", myBA2.Length );
          Console.WriteLine( "\tValues:" );
          PrintValues( myBA2, 8 );      Console.WriteLine( "myBA3" );
          Console.WriteLine( "\tCount:    {0}", myBA3.Count );
          Console.WriteLine( "\tLength:   {0}", myBA3.Length );
          Console.WriteLine( "\tValues:" );
          PrintValues( myBA3, 8 );      Console.WriteLine( "myBA4" );
          Console.WriteLine( "\tCount:    {0}", myBA4.Count );
          Console.WriteLine( "\tLength:   {0}", myBA4.Length );
          Console.WriteLine( "\tValues:" );
          PrintValues( myBA4, 8 );      Console.WriteLine( "myBA5" );
          Console.WriteLine( "\tCount:    {0}", myBA5.Count );
          Console.WriteLine( "\tLength:   {0}", myBA5.Length );
          Console.WriteLine( "\tValues:" );
          PrintValues( myBA5, 8 );
       }
       public static void PrintValues( IEnumerable myList, int myWidth )  {
          System.Collections.IEnumerator myEnumerator = myList.GetEnumerator();
          int i = myWidth;
          while ( myEnumerator.MoveNext() )  {
             if ( i <= 0 )  {
                i = myWidth;
                Console.WriteLine();
             }
             i--;
             Console.Write( "\t{0}", myEnumerator.Current );
          }
          Console.WriteLine();
       }
    }
    /* 
    This code produces the following output.myBA1
        Count:    5
        Length:   5
        Values:
        False    False    False    False    False
    myBA2
        Count:    5
        Length:   5
        Values:
        False    False    False    False    False
    myBA3
        Count:    40
        Length:   40
        Values:
        True    False    False    False    False    False    False    False
        False    True    False    False    False    False    False    False
        True    True    False    False    False    False    False    False
        False    False    True    False    False    False    False    False
        True    False    True    False    False    False    False    False
    myBA4
        Count:    5
        Length:   5
        Values:
        True    False    True    True    False
    myBA5
        Count:    160
        Length:   160
        Values:
        False    True    True    False    False    False    False    False
        False    False    False    False    False    False    False    False
        False    False    False    False    False    False    False    False
        False    False    False    False    False    False    False    False
        True    True    True    False    False    False    False    False
        False    False    False    False    False    False    False    False
        False    False    False    False    False    False    False    False
        False    False    False    False    False    False    False    False
        False    False    False    True    False    False    False    False
        False    False    False    False    False    False    False    False
        False    False    False    False    False    False    False    False
        False    False    False    False    False    False    False    False
        True    False    False    True    False    False    False    False
        False    False    False    False    False    False    False    False
        False    False    False    False    False    False    False    False
        False    False    False    False    False    False    False    False
        False    True    False    True    False    False    False    False
        False    False    False    False    False    False    False    False
        False    False    False    False    False    False    False    False
        False    False    False    False    False    False    False    False
    */
      

  3.   

    byte & byte的类型的整型
    byte a=120;
    byte b=211;
    MessageBox.Show((a&b).GetType().ToString());
      

  4.   

    byte 表示无符号整数,那uint 表示什么?uint 是4字节
      

  5.   

    任何数据在计算机内部都是以二进制保存的,所以进制与数据的存储无关,只与输入输出有关。所以,对于进制转换,我们只关心字符串中的结果。在上面的第 4 条中提到了 ToString() 方法可以将数值转换成字符串,不过在字符串中,结果是以十进制显示的。现在我们带给它加一些参数,就可以将其转换成十六进制——使用 ToString(string) 方法。这里需要一个 string 类型的参数,这就是格式说明符。十六进制的格式说明符是 "x" 或者 "X",使用这两种格式说明符的区别主要在于 A-F 六个数字:"x" 代表 a-f 使用小写字母表示,而 "X" 而表示 A-F 使用大字字母表示。如下例:
    private void TestHex() {int a = 188;this.textBox1.Text = "";this.textBox1.AppendText("a(10) = " + a.ToString() + "\n");this.textBox1.AppendText("a(16) = " + a.ToString("x") + "\n");this.textBox1.AppendText("a(16) = " + a.ToString("X") + "\n");}
    运行结果如下:
    a(10) = 188a(16) = bca(16) = BC
    这时候,我们可能有另一种需求,即为了显示结果的整齐,我们需要控制十六进制表示的长度,如果长度不够,用前导的 0 填补。解决这个问题,我们只需要在格式说明符“x”或者“X”后写上表示长度的数字就行了。比如,要限制在 4 个字符的长度,可以写成“X4”。在上例中追加一句:
    this.textBox1.AppendText("a(16) = " + a.ToString("X4") + "\n");
    其结果将输出 a(16) = 00BC。现在,我们还要说一说如何将一个表示十六进制数的字符串转换成整型。这一转换,同样需要借助于 Parse() 方法。这里,我需要 Parse(string, System.Globalization.NumberStyles) 方法。第一个参数是表示十六进制数的字符串,如“AB”、“20”(表示十进制的 32) 等。第二个参数 System.Globalization.NumberStyles 是一个枚举类型,用来表示十六进制的枚举值是 HexNumber。因此,如果我们要将“AB”转换成整型,就应该这样写:int b = int.Parse("AB", System.Globalization.NumberStyles.HexNumber),最后得到的 b 的值是 171。
      

  6.   

    byte -> System.Bytechar -> System.Charshort -> System.Int16int -> System.Int32long -> System.Int64uint -> System.UInt32bool -> System.Boolean
      

  7.   

    作以下实验
    byte a=120;
    byte b=211;
    MessageBox.Show((a&b).GetType().ToString());
    结果为Int32
      

  8.   

    作以下实验
    byte a=120;
    byte b=211;
    MessageBox.Show((a&b).GetType().ToString());
    结果为Int32,其实这个结果我已经知道,我想知道的是为什么byte &byte =Int32????
      

  9.   

    不仅是与的结果是INT32
    别的也都是的int32
    你试试byte a=120;
    (a+1).GetType()帮你查查
      

  10.   

    位运算结果都是int32类型,因为cpu是32位的。
      

  11.   

    to  jimh(jimmy) 
    位运算结果都是int32类型,因为cpu是32位的。
    -----------------------------------------
    你试试
    long a=9;
    long b=8;
    MessageBox.Show((a&b).GetType().ToString());
      

  12.   

    可能是byte类型表示的数太少了
    所以为了保证不溢出,就返回Int32类型
      

  13.   

    请问 10000000byte等于多少Mb