c語言或的規則
⑴ 與或非三種運算規則是什麼
「與」、「或」、「非」邏輯的基本運算公式是and、or、not。
有三種最基本的邏輯運算:
1)邏輯與 -- 用AB表示:當A,B都為1時,其值為1,否則為零。
2)邏輯或 -- 用 A+B 表示:當A,B都為0時,其值為0,否則為1。
3)邏輯非 -- 用 A上'¯'表示,當A=0時,A的非為1,A=1時,A的非為0。
邏輯表達式的作用:
用邏輯運算符將關系表達式或邏輯量連接起來的有意義的式子稱為邏輯表達式,邏輯表達式的值是一個邏輯值,即「true」或「false」。
c語言編譯系統在給出邏輯運算結果時,以數字1表示「真」,以數字0表示「假」,但在判斷一個量是否為「真」時,以0表示「假」,以非0表示「真」,可以將邏輯表達式的運算結果(0或1)賦給整型變數或字元型變數。
⑵ 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語言中邏輯運算符的規則是什麼
1、邏輯運算符運算規則:
||或:比如兩個條件中,只要有一個成立,則結果就成立;
&&與:比如兩個條件中,兩個同時成立,則結果成立,否則不成立;
!非,就是取反之意,如果是真,結果是假,如果是假,結果是真。
2、邏輯運算符是根據表達式的值來返回真值或是假值。其實在C語言中沒有所謂的真值和假值,只是認為非0為真值,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語言中同或、異或怎麼表示
1、概念:參加運算的兩個對象,按二進制位進行「與」運算,負數按補碼形式參加按位與運算。
2、運算規則:0&0=0; 0&1=0;1&0=0;1&1=1;即:兩位同時為「1」,結果才為「1」,否則為0【有0則0】
例如:3&5=1,即0000 0011 & 0000 0101 = 0000 0001
3、「與運算」特殊用途:
(1)清零。如果想將一個單元清零,即使其全部二進制位為0,只要與一個各位都為零的數值相與,結果為零。
(2)取一個數中指定位。找一個數,對應X要取的位,該數的對應位為1,其餘位為零,此數與X進行「與運算」可以得到X中的指定位。
例:設X=10101110,取X的低4位,用 X & 0000 1111 = 0000 1110 即可得到;還可用來取X的2、4、6位。
二、按位或(|)
1、概念:參加運算的兩個對象按二進制位進行「或」運算,負數按補碼形式參加按位與運算。
2、運算規則:0|0=0;0|1=1;1|0=1;1|1=1;即 :參加運算的兩個對象只要有一個為1,其值為1【有1則1】
例如:3|5=7,即 0000 0011 | 0000 0101 = 0000 0111
3、「或運算」特殊作用:
(1)常用來對一個數據的某些位置1。找到一個數,對應X要置1的位,該數的對應位為1,其餘位為零。此數與X相或可使X中的某些位置1。
例:將X=10100000的低4位置1 ,用 X | 0000 1111 = 1010 1111即可得到。
三、異或運算(^)
1、概念:參加運算的兩個數據,按二進制位進行「異或」運算
2、運算規則:0^0=0;0^1=1;1^0=1;1^1=0;即:參加運算的兩個對象,如果兩個相應位為「異」(值不同),則該位結果為1,否則為0【同0異1】
例如:3^5=6,即0000 0011^0000 0101 = 0000 0110
3、「異或運算」特殊作用:
(1)使特定位翻轉 找一個數,對應X要翻轉的各位,該數的對應位為1,其餘位為零,此數與X對應位異或即可。
(2)與0相異或,保留原值 ,X ^ 0000 0000 = 1010 1110。
例:X=10101110,使X低4位翻轉,用X ^ 0000 1111 = 1010 0001即可得到。
(3)基於異或運算,不引用新變數交換兩個變數的值
a = a ^ b; b = a ^ b; a = a ^ b;
【同樣基於加減法的話有:a = a + b; b = a - b; a = a -b;】
四、不同長度的數據進行位運算
如果兩個不同長度的數據進行位運算時,系統會將二者按右端對齊,然後進行位運算。
以「與」運算為例說明如下:我們知道在C語言中long型佔4個位元組,int型佔2個位元組,如果一個long型數據與一個int型數據進行「與」運算,右端對齊後,左邊不足的位依下面三種情況補足,
(1)如果整型數據為正數,左邊補16個0。
(2)如果整型數據為負數,左邊補16個1。
(3)如果整形數據為無符號數,左邊也補16個0。
如:long a=123;int b=1;計算a & b。
如:long a=123;int b=-1;計算a & b。
如:long a=123;unsigned int b=1;計算a & b。
⑹ 在C語言中,自定義標識符的規則有哪些
在C語言中,自定義標識符的規則有:
1、第一個字元必須是字母(不分大小寫)或下劃線(_);
2、後跟字母(不分大小寫)、下劃線(_)或數字組成;
3、標識符中的大小寫字母有區別。如,變數sum,sum,sum代表三個不同的變數;
4、不能與c編譯系統已經預定義的、具有特殊用途的保留標識符(即關鍵字)同名。比如,不能將標識符命名為float,auto,break,case,this,try,for,while,int,char,short,unsigned等等。
(6)c語言或的規則擴展閱讀:
在程序設計語言中,標識符是用作程序的某一元素的名字的字元串或用來標識源程序中某個對象的名字的 。這個元素可以是一個語句標號,一個過程或函數、一個數據元素(例如一個標量變數或一個數組)或程序本身。最通常是,標識符這個字幾乎與變數名同義地使用。
⑺ C語言里的「或者」是什麼符號
|| 雙豎 比如 (a == 3) || (a == 4 ), 表示假如 a值為3 ,或者a 值為4 的一個判斷
⑻ 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成為掩碼。