c語言按位與運算
❶ c語言位運算
按位與 | 按位或 ^
按位異或 ~ 取反 <<
左移 >> 右移<<
1. 按位與運算。按位與運算符"&"是雙目運算符。其功能是參與運算的兩數各對應的二進位相與。只有對應的兩個二進位均為1時,結果位才為1 ,否則為0。參與運算的數以補碼方式出現。
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); }。
5. 左移運算。左移運算符「<<」是雙目運算符。其功能把「<< 」左邊的運算數的各二進位全部左移若干位,由「<<」右邊的數指定移動的位數, 高位丟棄,低位補0。例如: a<<4 指把a的各二進位向左移動4位。如a=00000011(十進制3),左移4位後為00110000(十進制48)。
❷ c語言的按位運算符怎麼操作!
樓主你好
&在c語言中是按位與運算
凡是位運算
應該先將對應的數轉換為二進制
然後專再繼續運算
首先樓主注意屬0177是以0開頭的
說明是八進制數
一個八進制數對應三個二進制位
八進制數1對應:
001
八進制數7對應:
111
因此:
0177對應的二進制數就是:
001
111
111
再則
這里除了底7位是1外
其餘的都是0
另外按位與運算&就是只要有0
那麼必為0
因此這里就是將n中除7個低二進制位外的其他各位均置為0
希望能幫助你哈
❸ C語言中什麼是按位或運算
位運算是在二進制層面上進行的運算
位或就是在兩個二進制上進行按版位的或運算
像普通的邏輯權運算一樣 兩個里有一個為真就返回真(邏輯真 就是1 邏輯假就是0)
比如兩個十進制數 5 和 3 進行位或運算
把他們轉換為二進制
5的二進制是 0101
3的二進制是 0011
他們按位或的結果是0111 轉換到十進制就是0+4+2+1 是7
❹ C語言中的按位運算符和邏輯運算符
&&是邏輯與,計算機的邏輯無非兩種,0和非0,7和8都是非0,那麼7&&8就是非0,也就是真了。
&是位操作,即按兩個操作數的二進制每一位進行與運算
7的二進制:00000111
8的二進制:00001000
與運算後為:00000000,結果就是假了
❺ 關於c語言中的按位或運算
#include "stdio.h"
void main()
{
unsigned int sum=0x0f,k=0x100;
printf("%d&%d=%d,%d\n",sum,k,sum&k,sizeof(sum));
}
輸出結果:
15&256=0,4
#include "stdio.h"
void main()
{
unsigned char sum=0x0f,k=0x100;
printf("%d&%d=%d,%d\n",sum,k,sum&k,sizeof(sum));
}
輸出結果:
15&0=0,1
Press any key to continue
我用VC++編譯的,,結果差別在與k值為256超出了char的范圍了
補充:結果為0
❻ C語言的邏輯運算和按位運算怎麼區分
1、作用的不來同
&&、||是邏輯源運算符,用於從左到右求表達式的真值。假設x=1;y=2;那麼x&&y=1;x||y=1。
&、|是位運算符,是對x,y進行位運算,x,y取值如上,那麼有x&y=0;(x的二進製表示為00,y的二進製表示為10)。
2、判斷這個表達式的真或假的不同
&和|既是邏輯運算符也是位運算符,而&&和||只是邏輯運算符。
當&與&&同為邏輯運算符時,它們都用於連接兩個Boolean類型的表達式,當&和&&的兩端表達式同時為真時,表達式的結果為真,只要有一端為假,那麼表達式結果為假。
例:3>5&3>2;3>5&&3>2;
當|和||的兩端表達式同時為假時,表達式的結果為假,只要有一端為真,那麼表達式結果為真。
3、計算方式不同
當使用&運算符:計算機在判斷表達式的值的時候,先判斷3>5的值為假,然後再判斷3>2的結果為真,於是最後的結果是假&真為假;
但是當我們使用&&運算符的時候:計算機先判斷3>5的值為假,此時表達式的結果一定為假,所以計算機就不再往下判斷了,判定表達式結果為假。
❼ C語言中按位與(&)運算符是什麼意思
是將二進制數按照位的對應相與,得到一個新的二進制數。1與0為0;1與1為1;0與0為0。
分析如下:專
就是屬二進制的每一位相與。
比如:1010 0011& 0000 1111,結果為0000 0011。也就是與上0相當於把那位數清0,與上1相當於把那位保留。
(7)c語言按位與運算擴展閱讀:
1、按位與運算符"&"是雙目運算符。 其功能是參與運算的兩數各對應的二進位相與。只有對應的兩個二進位均為1時,結果位才為1 ,否則為0。參與運算的數以補碼方式出現。
例如:9&5可寫算式如下: 00001001 (9的二進制補碼)&00000101 (5的二進制補碼) 00000001 (1的二進制補碼)可見9&5=1。 按位與運算通常用來對某些位清0或保留某些位。例如把a 的高八位清 0 , 保留低八位, 可作 a&255 運算 ( 255 的二進制數為11111111)。
❽ c語言中按位與。。按位或什麼意思
位運算抄符C語言提供了六種位襲運算符:
& 按位與
| 按位或
^ 按位異或
~ 取反
<< 左移
>> 右移
按位與運算 按位與運算符"&"是雙目運算符。其功能是參與運算的兩數各對應的二進位相與。只有對應的兩個二進位均為1時,結果位才為1 ,否則為0。參與運算的數以補碼方式出現。
例如:9&5可寫算式如下: 00001001 (9的二進制補碼)&00000101 (5的二進制補碼)00000001 (1的二進制補碼)可見9&5=1。
❾ C語言…按位與,按位或!
是按2進制代碼的同位進行運算。例如1010和1101這2個2進制數:
按位與為:
1010
1101
=
1000對應為同為1時是1,否則為0.
按位或為:
1010
1101
=
1111隻要同位的兩個全為零時得零,否則為1