當前位置:首頁 » 編程語言 » c語言位或

c語言位或

發布時間: 2022-01-27 19:21:14

c語言中的 | 位或符號有什麼作用,請大佬說明一下。

|前後兩整型數的二進制位對應操作,不涉及其他位,所以又叫「按位或」。規則是對應位兩個中有一個或兩個都是1,則這一位的結果為1,都為0時這一位結果為0。所以任何一個整數,自己|自己還是自己,不同的兩數相或時結果一般就不同了。如5(00000101) | 12(00001100),結果是13(00001101)。

❷ c語言中按位與。。按位或什麼意思

位運算符C語言提供了六種位運算符:

& 按位與
| 按位或
^ 按位異或
~ 取反
<< 左移
>> 右移

按位與運算 按位與運算符"&"是雙目運算符。其功能是參與運算的兩數各對應的二進位相與。只有對應的兩個二進位均為1時,結果位才為1 ,否則為0。參與運算的數以補碼方式出現。

例如:9&5可寫算式如下: 00001001 (9的二進制補碼)&00000101 (5的二進制補碼)00000001 (1的二進制補碼)可見9&5=1。

❸ c語言中按位或|

這里涉及到的是位操作。
首先你需要了解內存中的數字存儲形式(二進制)。這里的a是一個標識符,用於存儲標記。具體而言,a是一個八個比特長的變數。比如0b00000000,0b00001110等等。用十六進制可以簡寫為0x00, 0x0E等等(這里兩個例子沒有任何含義)
在C語言中「<<」表示移位操作,比如0b00000001左移3位,就會變成0b00001000;左移2位就是0b00000100;等等。
然後你這里沒有給出digitalRead()函數的返回類型,我認為是0或1。在這種情況下,0寫成8位二進制是0b00000000,左移任何位都是0,如果是1的話,左移x位表示把從右往左數第x+1位變成1,比如:1<<3表示0b00001000,從右至左第4位變成1。
接下來,你有4個digitalRead函數,但是你想同時關心4個返回值。怎麼辦呢?我把第x個返回值放在從右往左數第x位上。比如0b00000110,表示第二、三個返回值是1,剩下兩個返回值是0。那麼你按上面的移位操作,可以得到這樣4個數:
0b 0000 0000 (返回值是0)
0b 0000 0100 (返回值是1)
0b 0000 0010 (返回值是1)
0b 0000 0000 (返回值是0)
按位進行「或」操作。「或」操作你肯定明白,有1就是1,沒1才是0
所以根據結果可以知道4個返回值是怎麼樣的。於是在switch語句中的返回值表明,如果是0x00(表示4個返回值是0),或是0x0F(4個返回值都是1)(F是4個1),則進行某種操作。
不知道明白了沒?

❹ C語言中什麼是按位或運算

位運算是在二進制層面上進行的運算
位或就是在兩個二進制上進行按位的或運算
像普通的邏輯運算一樣 兩個里有一個為真就返回真(邏輯真 就是1 邏輯假就是0)
比如兩個十進制數 5 和 3 進行位或運算
把他們轉換為二進制
5的二進制是 0101
3的二進制是 0011
他們按位或的結果是0111 轉換到十進制就是0+4+2+1 是7

❺ C語言中的按位或 | 怎麼在鍵盤上輸入,謝謝

拼音打字切換到英文,按shift(不鬆手)同時按鍵盤上面標注著右斜杠和一豎的那個按鍵,我鍵盤上的那個按鍵是在Enter回車鍵的上方。

❻ C語言中按位或,與,非是怎麼用的,怎麼運算

位運算符
C提供了六種位運算運算符;這些運算符可能只允許整型操作數,即char、short、int和long,無論signed或者unsigned。
&
按位AND
|
按位OR
^
按位異或
<<
左移
>>
右移
~
求反(一元運算)
按位與操作&通常用於掩去某些位,比如
n
=
n
&
0177;
使得n中除了低7位的各位為0。
按位或操作|用於打開某些位:
x
=
x
|
SET_ON;
使得x的某些SET_ON與相對的位變為1。
按位異或操作^使得當兩個操作數的某位不一樣時置該位為1,相同時置0。
應該區分位操作符&、|與邏輯操作符&&、||,後者從左到右的評價一個真值。比如,如果x為1、y為2,那麼x
&
y為0,而x
&&
y為1。
移位運算符<<和>>將左側的操作數左移或者右移右操作數給定的數目,右操作數必須非負。因此x
<<
2將x的值向左移動兩位,用0填充空位;這相當於乘4。右移一個無符號數會用0進行填充。右移一個帶符號數在某些機器上會用符號位進行填充(「算數移位」)而在其他機器上會用0進行填充(「邏輯移位」)。
單目運算符~對一個整數求反;即將每一個1的位變為0,或者相反。比如
x
=
x
&
~077
將x的後六位置0。注意x
&
~077的值取決於字長,因此比如如果假設x是16位數那麼就是x
&
0177700。這種簡易型式並不會造成額外開銷,因為~077是一個常數表達式,可以在編譯階段被計算。
作為一個使用位操作的實例,考慮函數getbits(x,p,n)。它返回以p位置開始的n位x值。我們假設0位在最右邊,n和p是正數。例如,getbits(x,4,3)返回右面的4、3、2位。
/*
getbits:
返回從位置p開始的n位
*/
unsigned
getbits(unsigned
x,
int
p,
int
n)
{
return
(x
>>
(p+1-n))
&
~(~0
<<
n);
}
表達式x
>>
(p+1-n)將需要的域移動到字的右側。~0是全1;將其左移n為並在最右側填入0;用~使得最右側n個1成為掩碼。

❼ c語言的按位或運算

當然可以。
只不過與0按位或,運算結果還是其本身,與全1按位或,運算結果是全1。

❽ C語言的a|b是什麼意思什麼是按位或

舉個例子 數字 1 轉換成二進制的8位數據就是 00000001
數字3 轉換成 二進制就是 00000011
1與3(1&3) 就是把 對應的位想與(0&0為0,1&0為0,1&1為1)
結果為 00000001
1或3(1|3)就是把 對應的位想或(0|0為0,1|0為1,1|1為1)
結果為 00000011

❾ C語言中按位與(&)運算符是什麼意思

是將二進制數按照位的對應相與,得到一個新的二進制數。1與0為0;1與1為1;0與0為0。

分析如下:

就是二進制的每一位相與。

比如:1010 0011& 0000 1111,結果為0000 0011。也就是與上0相當於把那位數清0,與上1相當於把那位保留。

(9)c語言位或擴展閱讀

1、按位與運算符"&"是雙目運算符。 其功能是參與運算的兩數各對應的二進位相與。只有對應的兩個二進位均為1時,結果位才為1 ,否則為0。參與運算的數以補碼方式出現。

例如:9&5可寫算式如下: 00001001 (9的二進制補碼)&00000101 (5的二進制補碼) 00000001 (1的二進制補碼)可見9&5=1。 按位與運算通常用來對某些位清0或保留某些位。例如把a 的高八位清 0 , 保留低八位, 可作 a&255 運算 ( 255 的二進制數為11111111)。

熱點內容
電腦伺服器在哪裡輸入 發布:2024-11-16 12:27:22 瀏覽:263
魅族16th如何設置熱點密碼 發布:2024-11-16 12:22:15 瀏覽:396
浙江密碼文件櫃哪裡有 發布:2024-11-16 12:20:34 瀏覽:953
c語言逆序輸出整數 發布:2024-11-16 12:20:31 瀏覽:797
藍橋杯c語言 發布:2024-11-16 12:20:24 瀏覽:398
安卓陣營哪個手機外放好 發布:2024-11-16 12:16:02 瀏覽:651
國外雲伺服器免費 發布:2024-11-16 12:13:49 瀏覽:554
蘇寧茅台腳本 發布:2024-11-16 12:12:18 瀏覽:252
訪問乞丐 發布:2024-11-16 12:07:19 瀏覽:436
安卓手機哪個軟體看vr 發布:2024-11-16 12:07:19 瀏覽:927