當前位置:首頁 » 編程語言 » c語言中的和或非

c語言中的和或非

發布時間: 2023-02-14 14:09:41

c語言的按位與、或、非、異或都什麼意思。有什麼用

位運算符有:&(按位與)、|(按位或)、^(按位異或)、~
(按位取反)。
優先順序從高到低,依次為~、&、^、|
按位與運算有兩種典型用法,一是取一個位串信息的某幾位,如以下代碼截取x的最低7位:x
&
0177。二是讓某變數保留某幾位,其餘位置0,如以下代碼讓x只保留最低6位:x
=
x
&
077。
按位或運算的典型用法是將一個位串信息的某幾位置為1。如將要獲得最右4位為1,其他位與變數j原來其他位保持相同,可用邏輯或運算017|j;
按位異或運算的典型用法是求一個位串信息的某幾位信息的反。如欲求整型變數j的最右4位信息的反,用邏輯異或運算017^j,就能求得j最右4位的信息的反,即原來為1的位,結果是0,原來為0的位,結果是1。
交換兩個值,不用臨時變數,假如a=3,b=4。想將a和b的值互換,可以用以下賦值語句實現:
a=a^b;
b=b^a;
a=a^b;
取反運算常用來生成與系統實現無關的常數。如要將變數x最低6位置成0,其餘位不變,可用代碼x
=
x
&
~077實現。

Ⅱ 求c語言,與,或,非運算函數

按位「與」、「或」和「非」運算是C/C++中標准運算符,不需要另外編寫函數。
與運算: c = a & b;
或運算: c = a | b;
非運算: ~a;
非運算: ~b

另外,!是邏輯運算符,對於a,如果a 為 0,!a = 1,如果a 不為 0,則!a = 0。

Ⅲ 計算機C語言中邏輯運算符「與」「或」「非」優先順序是怎樣的

非的優先順序最高(它是一個單目操作符)
與的優先順序次之
或的優先順序最低

單目操作符的優先順序最高。

Ⅳ C語言邏輯或與非的用法

C語言邏輯或與非用於邏輯運算,可以在一條語句中同時出現,但還有優先順序的限制。

基本應用:

邏輯與,符號為「&&」,只有兩個操作數都是真,結果才是真。邏輯或,是邏輯運算符,符號是「||」。表示當兩個條件中有任一個條件滿足,「邏輯或」的運算結果就為「真」。「!」(邏輯非)邏輯運算符。「邏輯非」就是指本來值的反值。

優先順序:

C語言中,運算符的運算優先順序共分為15 級。1 級最高,15 級最低。邏輯與運算符 13級「&&」邏輯與運算符。邏輯或運算符 14 級,「 || 」邏輯或運算符。邏輯否「!」單目/一元運算 3級。因此優先順序為:邏輯非高於邏輯與高於邏輯非。

運算方向:

在C語言中,只有4個運算符規定了運算方向,它們是&&、| |、條件運算符及賦值運算符。&&、| |都是先計算左邊表達式的值,當左邊表達式的值能確定整個表達式的值時,就不再計算右邊表達式的值。如 a = 0 && b; &&運算符的左邊位0,則右邊表達式b就不再判斷。

(4)c語言中的和或非擴展閱讀:

相關規則及應用:

1、邏輯運算符:a=1,b=1;a||b-1;因為a=1為真值,所以不管b-1是不是真值,總的表達式一定為真值,這時後面的表達式就不會再計算了。

2、短路原則:

在邏輯表達式的求解過程中,任何時候只要邏輯表達式的值已經可以確定,則求解過程不再進行,求解結束。表達式中優先順序最低的邏輯運算符,以這些運算符為准將整個邏輯表達式分為幾個計算部分。最左邊一個計算部分開始,按照算術運算、關系運算和邏輯運算的規則計算該部分的值。

每計算完一個部分就與該部分右邊緊靠著的邏輯運算符根據真值表進行邏輯值判斷。如果已經能夠判斷出整個邏輯表達式的值則停止其後的所有計算;只有當整個邏輯表達式的值還不能確定的情況下才進行下一個計算部分的計算。

Ⅳ C語言的按位與、或、非、異或都什麼意思。有什麼用

這些是位操作運算符:參與運算的量,按二進制位進行運算。

在計算機中,數據都是以二進制數形式存放的,位運算就是指對存儲單元中二進制位的運算。C語言提供6種位運算符。

包括位與(&)、位或(|)、位非(~)、位異或(^)、左移(<<)、右移(>>)六種。

位運算符 & |~<< >> ∧ 按優先順序從高到低排列的順序是:

位運算符中求反運算「~「優先順序最高,而左移和右移相同,居於第二,接下來的順序是按位與 「&「、按位異或 「∧「和按位或 「|「。順序為~ << >> & ∧ | 。

(5)c語言中的和或非擴展閱讀:

例:設二進制數a是00101101 ,若通過異或運算a∧b 使a的高4位取反,低4位不變,則二進制數b是。

解析:異或運算常用來使特定位翻轉,只要使需翻轉的位與1進行異或操作就可以了,因為原數中值為1的位與1進行異或運算得0 ,原數中值為0的位與1進行異或運算結果得1。而與0進行異或的位將保持原值。異或運算還可用來交換兩個值,不用臨時變數。

如 int a=3 , b=4;,想將a與b的值互換,可用如下語句實現:
a=a∧b;

b=b∧a;

a=a∧b;

所以本題的答案為: 11110000 。

Ⅵ C語言中與或非的運算方法是什麼

&&與運算時,只有兩邊同時成立時為真的,具有短路效應,即若左邊為假時,就不再判斷右邊的結果了!
\\或運算時兩邊只要有一個成立就是真的,也具有短路效應,即若左邊為真時,就不再判斷右邊的結果了!

!非運算,結果取反!

Ⅶ 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成為掩碼。

熱點內容
android自動彈出輸入法 發布:2024-11-08 18:19:51 瀏覽:275
存儲器最小單位 發布:2024-11-08 18:04:49 瀏覽:796
伺服器掛網站怎麼掙錢 發布:2024-11-08 18:03:52 瀏覽:858
csqlserver 發布:2024-11-08 17:43:08 瀏覽:207
sql綠色 發布:2024-11-08 17:26:48 瀏覽:806
安卓手機如何更新紅標 發布:2024-11-08 17:25:23 瀏覽:63
python正則空格 發布:2024-11-08 17:14:18 瀏覽:235
蟑螂資料庫 發布:2024-11-08 17:13:07 瀏覽:781
洗車機的配置是什麼意思 發布:2024-11-08 17:13:01 瀏覽:266
java開發文檔編寫 發布:2024-11-08 17:06:49 瀏覽:433