簡體   English   中英

if (c >> a & 1) 是什么意思?

[英]What is if (c >> a & 1) does mean?

我試圖了解這種情況是什么意思。

這是否意味着在移動值后它將等於 1?

我的意思是這意味着 --> if (c >> a is 1)


注意: c >> a & 1(c >> a) & 1

按位 AND 對進行運算,因此可能性是:

1101 & 0001 => 0001

0001 & 0001 => 0001

1010 & 0001 => 0000

0000 & 0001 => 0000

現在,在 C 上,任何不是零的東西都被視為true ,因此該語句的意思是“如果在移動最低有效位后為 1”,或者如果您正在處理奇數,則可能是“如果在移動值后為奇數”-甚至操作。

>>運算符優先級高於&

所以c >> a & 1意思是“將值c向右移動a位,然后檢查是否設置了移位值的最低位。像這樣挑出某些位值被稱為位掩碼,在此為1案例是面具。

如果值c 的a為真,則執行以下語句或塊。

              a+1  a  a-1           1   0
       ... --+---+---+---+-- ... -+---+---+
             | z | y | x |        | q | p |
       ... --+---+---+---+-- ... -+---+---+


                             ... -+---+---+
>> a                              | z | y |
                             ... -+---+---+


                             ... -+---+---+
&& 1                              | 0 | y |
                             ... -+---+---+

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM