c語言與操作
A. c語言中的 與或非運算
C語言中的與、或、非是C語言的邏輯運算符。
1、邏輯與
在C語言中邏輯與用&&表示。
舉例:a&&b(其中a、b都代表一個條件)
如果a和b都為真,則結果為真,如果a和b中有一個條件為假,則結果為假。
2、邏輯或
在C語言中邏輯或用||表示。
舉例:a||b(其中a、b都代表一個條件)
如果a和b有一個或以上為真,則結果為真,二者都為假時,結果為假。
3、邏輯非
在C語言中邏輯非用!表示。
舉例:!a(a代表一個條件)
如果a為假,則!a為真,如果a為真,則!a為假。
(1)c語言與操作擴展閱讀
在C 語言中的邏輯運算符及優先順序:
一元:!(邏輯非)。
二元:&&(邏輯與)、||(邏輯或)。
以上三種邏輯運算符中,邏輯非 ! 的優先順序最高,邏輯與 && 次之,邏輯或 || 優先順序最低。即算術、邏輯、賦值運算符的優先順序順序為:
邏輯非 ! >算術 > 邏輯與 &&、邏輯或 || > 賦值=
B. C語言位操作運算符 &,|,~,^,<<,>>是干什麼的
& 按位與運算,如:1010 & 1100 = 1000
| 按位或運算,如:1010 & 1100 = 1110
~ 非運算,如:a = 1010; ~a = 0101
<<左移,如:1110 << 1 = 1100
>>右移,如:1000 >> 1 = 0100
C. c語言中,符號 & 是& 表示 與操作 例如: a&b 表示的就是a、b進行與操作; ,那這個跟&
&是位操作,你可以將值轉換成2進制在進行操作。&&是條件運算,就是符號左右兩邊都為真時,整個條件才返回1
D. C語言中 & 和 && 的區別
區別:
1.運算符性質不同。
&是一個位運算符。
&&是一個邏輯運算符。
2.作用不同。
&是將兩個二進制的數逐位相與,結果是相與之後的結果。
&&就是判斷兩個表達式的真假性,只有兩個表達式同時為真才為真,有一個為假則為假,具有短路性質。
3.用途限制。
&除了是一個位運算符,也是取地址符。
&&就是一個單純的邏輯運算符,沒有任何其他含義。
參考資料
&-網路
&&-網路
E. C語言和:操作符怎麼用
C語言?和:是三目運算符,也叫三元運算符。
語法:表達式1 ? 表達式2 : 表達式3;
函數:先執行表達式1,執行完畢,如果表達式1的結果為真,則執行表達式2,整個表達式的結果就是表達式2的結果,否則執行表達式3,結果是表達式3的結果。
例如:int res=1?10:20;
可以簡單理解為表達式1成立嗎?成立執行表達式2,否則執行表達式3。
(5)c語言與操作擴展閱讀:
關於三目運算符的幾點說明:
1、通常,表達式1是用於描述條件表達式中的條件的關系表達式或邏輯表達式。表達式2和3可以是常量、變數或表達式。例如:
(x==y)?y':'n'(d=b*b-4*a*c)>=0?sqrt(d):sqrt(-d)ch=(ch>='a'&&ch<='z')?(CH+32):CH
2、條件表達式的執行順序為:首先求解表達式1。如果值為非零,則條件為真,則求解表達式2,並將表達式2的值用作整個條件表達式的值;
如果表達式1的值為0,表示條件為假,則解方程3,表達式3的值是整個條件表達式的值。例如:
(a>=0)?a:-a執行的結果是a的絕對值。
3、在程序中,直接將條件表達式的值賦給變數。例如:
min=(a<b)的結果?a:b是將條件表達式的值賦給變數min,即a和b中的較小者賦給min。
F. C語言中位操作
首先32位系統-3默認為整形佔4位元組(32個位),二進製表示11111111
11111111
11111111
11111101得來方法:
3的二進制位00000000
00000000
00000000
00000011,取反補1後等到上面的值
再看下-1的二進制11111111
11111111
11111111
11111111同樣是1取反後補1
下面看下移位因為第一位為1,右移時根據最高位補位,移1位後值為:
11111111
11111111
11111111
11111110
再移動1位就變成了:11111111
11111111
11111111
11111111後面不管你右移多少次始終是這個結果,所以-3右移2次以上後值就是-1了。
G. c語言的按位運算符怎麼操作!
位運算
在很多系統程序中常要求在位(bit)一級進行運算或處理。C語言提供了位運算的功能, 這使得C語言也能像匯編語言一樣用來編寫系統程序。
一、位運算符C語言提供了六種位運算符:
& 按位與
| 按位或
^ 按位異或
~ 取反
<< 左移
>> 右移
1. 按位與運算 按位與運算符"&"是雙目運算符。其功能是參與運算的兩數各對應的二進位相與。只有對應的兩個二進位均為1時,結果位才為1 ,否則為0。參與運算的數以補碼方式出現。
例如:9&5可寫算式如下: 00001001 (9的二進制補碼)&00000101 (5的二進制補碼) 00000001 (1的二進制補碼)可見9&5=1。
按位與運算通常用來對某些位清0或保留某些位。例如把a 的高八位清 0 , 保留低八位, 可作 a&255 運算 ( 255 的二進制數為0000000011111111)。
main(){
int a=9,b=5,c;
c=a&b;
printf("a=%d\nb=%d\nc=%d\n",a,b,c);
}
2. 按位或運算 按位或運算符「|」是雙目運算符。其功能是參與運算的兩數各對應的二進位相或。只要對應的二個二進位有一個為1時,結果位就為1。參與運算的兩個數均以補碼出現。
例如:9|5可寫算式如下: 00001001|00000101
00001101 (十進制為13)可見9|5=13
main(){
int a=9,b=5,c;
c=a|b;
printf("a=%d\nb=%d\nc=%d\n",a,b,c);
}
3. 按位異或運算 按位異或運算符「^」是雙目運算符。其功能是參與運算的兩數各對應的二進位相異或,當兩對應的二進位相異時,結果為1。參與運算數仍以補碼出現,例如9^5可寫成算式如下: 00001001^00000101 00001100 (十進制為12)
main(){
int a=9;
a=a^15;
printf("a=%d\n",a);
}
4. 求反運算 求反運算符~為單目運算符,具有右結合性。 其功能是對參與運算的數的各二進位按位求反。例如~9的運算為: ~(0000000000001001)結果為:1111111111110110
5. 左移運算 左移運算符「<<」是雙目運算符。其功能把「<< 」左邊的運算數的各二進位全部左移若干位,由「<<」右邊的數指定移動的位數,
高位丟棄,低位補0。例如: a<<4 指把a的各二進位向左移動4位。如a=00000011(十進制3),左移4位後為00110000(十進制48)。6. 右移運算右移運算符「>>」是雙目運算符。其功能是把「>> 」左邊的運算數的各二進位全部右移若干位,「>>」右邊的數指定移動的位數。
例如:設 a=15,a>>2 表示把000001111右移為00000011(十進制3)。應該說明的是,對於有符號數,在右移時,符號位將隨同移動。當為正數時, 最高位補0,而為負數時,符號位為1,最高位是補0或是補1 取決於編譯系統的規定。Turbo C和很多系統規定為補1。
main(){
unsigned a,b;
printf("input a number: ");
scanf("%d",&a);
b=a>>5;
b=b&15;
printf("a=%d\tb=%d\n",a,b);
}
請再看一例!
main(){
char a='a',b='b';
int p,c,d;
p=a;
p=(p<<8)|b;
d=p&0xff;
c=(p&0xff00)>>8;
printf("a=%d\nb=%d\nc=%d\nd=%d\n",a,b,c,d);
}
H. 關於C語言中 || 和 &&的用法
「||」「&&」表示邏輯運算,「||」表示或者的意思,「&&」表示並且的意思。
&&運算符需要兩個表達式作為操作數,並創建一個表達式,只有當兩個子表達式都為true時,該表達式才為true。
||運算符需要兩個表達式作為操作數,並創建一個表達式,當任何一個子表達式為true時,該表達式為true。只要其中一個子表達式為true,則整體表達式為true,此時另外一個子表達式無論是false還是true都無關緊要。
運算符的優先順序
優先順序與求值順序無關。如a+b && b*c,雖然*優先順序最高,但這個表達式求值順序是從左到右。
優先順序從上到下依次遞減,最上面具有最高的優先順序,逗號操作符具有最低的優先順序。相同優先順序中,按結合性進行結合。大多數運算符結合性是從左到右,只有三個優先順序是從右至左結合的,它們是單目運算符、條件運算符、賦值運算符。
基本的優先順序需要記住:
指針最優,單目運算優於雙目運算,如正負號。先算術運算,後移位運算,最後位運算。請特別注意:邏輯運算最後結合。
I. C語言中>>和<<如何使用
C語言中<< 代表左移運算符,>> 代表右移運算符,位移位運算符是將數據看成二進制數,對其進行向左或向右移動若干位的運算。
<< 代表左移運算符:左移運算符用來將一個數的各二進制位全部左移若干位,移動的位數由右操作數指定,右操作數必須是非負值,其右邊空出的位用0填補,高位左移溢出則舍棄該高位。
例如:設無符號短整型變數a為0111(對應二進制數為0000000100010001),則:a<<3 結果為0888(對應二進制數為0000100010001000)。
>> 代表右移運算符:右移運算是將一個二進制位的操作數按指定移動的位數向右移動,移出位被丟棄,左邊移出的空位或者一律補0,或者補符號位,這由不同的機器而定。在使用補碼作為機器數的機器中,正數的符號位為0,負數的符號位為1。
例如:var temp = 56 >> 2 變數temp的值為 14,因為56 (即二進制的 00111000)向右移兩位等於14 (即二進制的 00001110) 。
(9)c語言與操作擴展閱讀:
相關運算規則:
1、在移位運算時,byte、short和char類型移位後的結果會變成int類型,對於byte、short、char和int進行移位時,規定實際移動的次數是移動次數和32的余數,也就是移位33次和移位1次得到的結果相同。
2、移動long型的數值時,規定實際移動的次數是移動次數和64的余數,也就是移動66次和移動2次得到的結果相同。
3、位移位運算符的優先順序:算術運算符優先於位移位運算符優先於關系運算符,位移位運算符是同級別的,結合性是自左向右。
J. C語言的與運算符
&& 兩者,其1 為假, 結果 必為假,
(++a>0) 為假, 結果 必為假, 所以 !(b--<=0) 不必執行。
b-- 自減因此而跳過 未執行。