none
C# bit的運算 RRS feed

  • 一般討論

  • 請問各位大大

    C#中如何將下面bit運算結果為3

    bit 0 = 1

    bit 1 = 0

    麻煩各位大大指教,謝謝

    開發環境 VS2008 + .NET 2.0

    • 已變更類型 Bill ChungMVP, Moderator 2011年6月26日 上午 04:00 發問者未繼續提供詳細資料, 題目不明確
    2011年4月17日 下午 02:33

所有回覆

  • 我覺得應該沒有人看得懂你的問題。你是在問如何把 01 經過位元運算變成 11, 像是 01 OR 11 = 11 嗎?

    如果你是想知道二進位如何表示, 你可以試試以下寫法:

    string bTargetBinaryNumber = "01";
    string bMask = "11";
    int targetBinaryNumber = Convert.ToInt32(bTargetBinaryNumber, 2); 
    int mask= Convert.ToInt32(bMask, 2); 
    int result = targetBinaryNumber | mask;
    

     


    ASP.NET 2Share - http://www.dotblogs.com.tw/johnny 


    2011年4月17日 下午 04:27
  • int x = 1;
    int Three = x | x << 1;
    2011年4月18日 上午 11:49
  • 正好之前使用IO卡時,有遇過你類似你的問題

    CODE拿去吧

     public class Channel32
      {
        public const byte Slot = 32;
    
        UInt32 _Value = 0;
    
        public Channel32() { }
    
        public Channel32(UInt32 Value)
        {
          this._Value = Value;
        }        
    
        public bool this[int index]
        {
          get
          {
            if ((index < 0) || (index >= Slot))
              return false;
    
            return (((this._Value >> index) & 1) != 0);
    
          }
    
          set
          {
            if ((index < 0) || (index >= Slot))
              return;
    
            if (value)
              this._Value |= (UInt32)1 << index;
            else
              this._Value &= ~((UInt32)1 << index);
          }
        }
    
        public UInt32 Value
        {
          get { return this._Value; }
          set { this._Value = value; }
    
        }
    
        public override int GetHashCode()
        {
          return base.GetHashCode();
        }
    
        public override string ToString()
        {
          return this._Value.ToString();
        }
      }
    

    2011年4月19日 上午 03:03