邏輯與(&&)與按位與(&)的不同

來源:互聯網
上載者:User

一直以來對於邏輯與(&&)和按位與(&)的區別不是很確定。今天上網找了一下,然後也寫代碼驗證了一下,現將其區別整理如下,供大家一起探討。

  1. 運算元都為數字時

 a. 對於兩個數字進行按位與(&),會將兩數字轉換為二進位,然後靠右對齊後(不足位補零),相應位做與操作,如11&3,11的二進位表示是1011,3的二進位表示是11,靠右對齊後做與操作後,:

        

         得到的結果是3。

        b. 對於兩個數字進行邏輯與(&&),會將兩個運算元都轉換成Boolean邏輯值(不為0的數字則為true,否則為false),然後再做與操作。

       示範代碼如下:

       static void Main()

        {

            int i = 11;  ///二進位是:1011

            int j = 3;  ///二進位是:0011

 

            int num = i & j;

            int num1 = Convert.ToInt32(Convert.ToBoolean(i) && Convert.ToBoolean(j));

 

            Console.WriteLine("按位與結果:{0}", num);

            Console.WriteLine("邏輯與結果:{0}", num1);

        }

  2.  運算元不為數字,為返回邏輯值的等式或方法

  a. 對於按位與(&),會對所有的運算元進行判斷。看一下示範代碼:

        static void Main()

        {

            if (3 == 5 & ReturnTrue())

            {

                Console.WriteLine("結果為真");

            }

        }

 

        static bool ReturnTrue()

        {

            Console.WriteLine("執行ReturnTrue方法");

            return true;

        }

        輸出結果是:執行ReturnTrue方法

       分析如下:等式3==5返回結果false,由輸出結果我們知道,在得到等式3==5返回false的情況下,仍然執行了ReturnTrue()方法,輸出結果“執行ReturnTrue方法”

      b. 對於邏輯與(&&),會逐個判斷運算元,當不符合時,後面的運算元將不再進行判斷。看一下示範代碼:

       static void Main()

        {

            if (3 == 5 && ReturnTrue())

            {

                Console.WriteLine("結果為真");

            }

        }

 

        static bool ReturnTrue()

        {

            Console.WriteLine("執行ReturnTrue方法");

            return true;

         }

            這段代碼不會輸出任何結果。

        分析如下:等式3==5返回結果false,由輸出結果我們知道,在得到等式3==5返回false的情況下,ReturnTrue()方法並未執行。

得到的結果是3。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.