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成為掩碼。
Ⅱ c語言怎麼算
C語言怎麼計算一個數有多少位的方法:
輸入待計算的數x
定義一個數位的變數int n=0;
循環,x每次縮小10倍,n=n+1; 最終x會變成0,循環結束
輸出n值
代碼:
#include <stdio.h>
void main()
{
int x,m,n=0;
printf("input x: ");scanf("%d", &x );
m=x; //備份原數,供輸出用
do {
n++;
x /= 10 ;
} while( x>0 );
printf("%d 是%d位數\n", m, n );
}
Ⅲ 請問在單片機C語言編程中這個「與」運算怎麼用
&就是按位與,就是兩個變數位都為1,就是1,如果不同時是1,就為0;
temp=temp&0xf0; 高四位的狀態由你的輸入狀態決定,低四位被直接置為0
Switch語句就是依據你的temp值進行匹配,將按鍵狀態傳入temp變數,然後通過case分支,匹配不同的按鍵狀態
Ⅳ C語言中與或非的運算方法是什麼
&&與運算時,只有兩邊同時成立時為真的,具有短路效應,即若左邊為假時,就不再判斷右邊的結果了!
\\或運算時兩邊只要有一個成立就是真的,也具有短路效應,即若左邊為真時,就不再判斷右邊的結果了!
!非運算,結果取反!
Ⅳ 求c語言,與,或,非運算函數
按位「與」、「或」和「非」運算是C/C++中標准運算符,不需要另外編寫函數。
與運算: c = a & b;
或運算: c = a | b;
非運算: ~a;
非運算: ~b
另外,!是邏輯運算符,對於a,如果a 為 0,!a = 1,如果a 不為 0,則!a = 0。
Ⅵ C語言按位與怎麼運算
計算兩個數x,y相與的結果。
代碼寫作x&y
先將x與y分別寫成二進制bit形式~~
例如計算10&30
10二進制為1010
30為11110
然後從低位開始,每個bit分別作與運算~~
其中bit的與運算,除了1&1=1外,其餘組合結果均為0
故10&30=01010,即1010。。。
Ⅶ C語言&&運算怎麼算
按位與,與運算就是全1得1,其他都得0
5&&2=0101&&0010=0000=0
7&&5=0111&&0101=0101=5
例:
#include<stdio.h>
intmain(void){
inta,b,c;
A:printf("abc ");
scanf("%d%d%d",&a,&b,&c);
if(a||b&&c)
printf("(%d||%d&&%d)=OK! ",a,b,c);
else
printf("(%d||%d&&%d)=Error! ",a,b,c);
getchar();
printf("############ ");
gotoA;
return0;
}
(7)c語言與怎麼算擴展閱讀
C語言運算符
「圓方括弧、箭頭一句號」指的是第1級的運算符。其中圓方括弧很明顯「()、[]」,箭頭指的是指向結構體成員運算符「->」,句號指的是結構體成員運算符「.」;
「八位與,七位異,六位或」其中八位與指的是第8級的按位與運算符「&」,七位異指的是第9級的按位異或運算符「^」,六位或指的是第10級的按位或運算符「|」;
「五與,四或」指的是第11級、第12級的邏輯與運算符「&&」和邏輯或運算符「||」;