本文目錄一覽:
C語言 與運算 &
&「與」運算。如果兩個相應的二進制都為1,則該位結果為1,否則為0,a=40oxff,是先進行與運算,在把值賦給a,40換成二進制是00101000.oxff換成二進制是11111111。00101000()11111111=00101000.還是40.
c語言與或運算
第一個應該將變量uGameStatus
中的某個bit(與GAME_CTRL_STATUS_POPUPHELPGUI相關的)置1,第二個應該是置0,
一般情況下,GAME_CTRL_STATUS_POPUPHELPGUI應該是個某個bit為1,其餘為0的常量
C語言按位與怎麼運算?
計算兩個數x,y相與的結果。
代碼寫作xy
先將x與y分別寫成二進制bit形式~~
例如計算1030
10二進制為1010
30為11110
然後從低位開始,每個bit分別作與運算~~
其中bit的與運算,除了11=1外,其餘組合結果均為0
故1030=01010,即1010。。。
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語言&&運算怎麼算?
按位與,與運算就是全1得1,其他都得0
52=01010010=0000=0
75=01110101=0101=5
例:
#includestdio.h
intmain(void){
inta,b,c;
A:printf(“abc\n”);
scanf(“%d%d%d”,a,b,c);
if(a||bc)
printf(“(%d||%d%d)=OK!\n”,a,b,c);
else
printf(“(%d||%d%d)=Error!\n”,a,b,c);
getchar();
printf(“############\n”);
gotoA;
return0;
}
擴展資料
C語言運算符
「圓方括號、箭頭一句號」指的是第1級的運算符。其中圓方括號很明顯「()、[]」,箭頭指的是指向結構體成員運算符「-」,句號指的是結構體成員運算符「.」;
「八位與,七位異,六位或」其中八位與指的是第8級的按位與運算符「」,七位異指的是第9級的按位異或運算符「^」,六位或指的是第10級的按位或運算符「|」;
「五與,四或」指的是第11級、第12級的邏輯與運算符「」和邏輯或運算符「||」;
參考資料來源:百度百科—C語言運算符
原創文章,作者:簡單一點,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/128156.html