當前位置:首頁 » 編程語言 » C語言位運算按位與

C語言位運算按位與

發布時間: 2023-04-08 11:22:46

① C語言的按位與、或、非、異或都什麼意思。有什麼用

這些是位操作運算符:參與運算的量,按二進制位進行運算。

在計算機中,數據都是以二進制數形式存放的,位運算就是指對存儲單元中二進制位的運算。C語言提供6種位運算符。

包括位與(&)、位或(|)、位非(~)、位異或(^)、左移(<<)、右移(>>)六種。

位運算符 & |~<< >> ∧ 按優先順序從高到低排列的順序是:

位運算符中求反運算「~「優先順序最高,而左移和右移相同,居於第二,接下來的順序是按位與 「&「、按位異或 「∧「和按位或 「|「。順序為~ << >> & ∧ | 。

(1)C語言位運算按位與擴展閱讀:

例:設二進制數a是00101101 ,若通過異或運算a∧b 使a的高4位取反,低4位不變,則二進制數b是。

解析:異或運算常用來使特定位翻轉,只要使需翻轉的位與1進行異或操作就可以了,因為原數中值為1的位與1進行異或運算得0 ,原數中值為0的位與1進行異或運算結果得1。而與0進行異或的位將保持原值。異或運算還可用來交換兩個值,不用臨時變數。

如 int a=3 , b=4;,想將a與b的值互換,可用如下語句實現:
a=a∧b;

b=b∧a;

a=a∧b;

所以本題的答案為: 11110000 。

② 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
=
1,1
&
0
=
0,0
&
1
=
0,0
&
0
=
0;
或運算,至少其一都為真計算結果為真,反之為假:
1
|
1
=
1,1
|
0
=
1,0
|
1
=
1,0
|
0
=
0;
異或運算,兩者不同為真,反之為假:
1
^
1
=
0,1
^
0
=
1,0
^
1
=
1,0
^
0
=
0;
取反運算,單目運算符:
~1
=
0,~0
=
1;
以上例子
1
代表真,0
代表假。
按位運算就是將二進制位的每一位進行如上計算。

2
|
5,轉換為二進制(以
1
位元組
8
位為例):
00000010
|
00000101,每個二進制位分別進行或運算後得:
00000111

7。雖然
7
=
5
+
2
但不代表
2
|
5
=
2
+
5。
如:2
|
6
=
6,5
|
6
=
7,2
|
4
|
5
|
6
|
7
=
7。
同理,按位與運算
2
&
5
的結果為
0:
00000010
&
00000101
=
00000000
按位與運算
2
&
6
的結果為
2(二進制
00000010):
00000010
&
00000110
=
00000010。
同樣也能算出
2
^
6
的結果為
4(二進制
00000101):
00000010
^
00000110
=
00000100。
取反運算
~00000110
=
11111001。
當然,對一個數字進行取反運算結果是多少,還與該類型是有符號還是無符號,佔用的位元組大小等有關。上面的例子只是以一個位元組為例進行說明。

④ C語言 字元串 按位與

// 編寫的以高位相與的函數:

char*str;
voidstringv(char*str1,char*str2)
{
inti;
for(i=0;str1[i]!=''&&str[i]!='';i++)
str[i]=(str1[i]-0x30)&(str2[i]-0x30)+0x30;
str[i]='';
}

⑤ 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語言中按位與(&)運算符是什麼意思

位運算符就是直接對整數在內存中的二進制位進行操作運算。比如,&&運算本來是一個邏輯運算符,但整數與整數之間可以用&進行運算。舉個例子,6的二進制是110,11的二進制是1011,那麼6 & 11的結果就是2,它是二進制對應位進行邏輯運算的結果(0表示False,1表示True,空位都當0處理)。
C語言提供了六種按位運算符:& 按位與| 按位或^ 按位異或~ 取反<< 左移>> 右移

也就是與上0相當於把那位數清0,與上1相當於把那位保留。

⑦ 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=1,1&0=0&1=0&0=0

⑨ 求助!什麼是按位或,什麼是按位異或,什麼是按位與

1、按位或:如果兩個相應的二進制位有一個為1,則該結果為1,否則為0。

2、按位異或(^):如果兩個相應的二進制位值不同則為1,否則為0。

3、按位與(&):如果兩個相應的二進制位都為1,則該位的結果值為1,否則為0。按位的各種運算,結合圖形看起來是不是還挺簡單,不過這些都是正數的操作,負數還涉及到補碼。

(9)C語言位運算按位與擴展閱讀:

注意事項:

1、如果兩個不同長度的數據進行位運算陵山時,尺鍵中系統會將二者按右端對齊,然後進行位運算。

2、以與運算為例說明如下:在C語言中long型佔4個位元組,int型佔2個位元組,如果一個long型數據與一個int型數據進行與運算,右端對齊後,左邊不足的位依下面三種情況補足:

如果整型數據為正數,左邊補16個0。

如果整型數據為負數,左邊補16個1。

如果整形數據為無符號數,左邊也補16個0。

參考資亮遲料來源:網路-按位或

⑩ C語言中按位與(&)運算符是什麼意思

是將二進制數按照位的對應相與,得到一個新的二進制數。1與0為0;1與1為1;0與0為0。

分析如下:

就是二進制的每一位相與。

比如:1010 0011& 0000 1111,結果為0000 0011。也就是與上0相當於把那位數清0,與上1相當於把那位保留。

(10)C語言位運算按位與擴展閱讀

1、按位與運算符"&"是雙目運算符。 其功能是參與運算的兩數各對應的二進位相與。只有對應的兩個二進位均為1時,結果位才為1 ,否則為0。參與運算的數以補碼方式出現。

例如:9&5可寫算式如下: 00001001 (9的二進制補碼)&00000101 (5的二進制補碼) 00000001 (1的二進制補碼)可見9&5=1。 按位與運算通常用來對某些位清0或保留某些位。例如把a 的高八位清 0 , 保留低八位, 可作 a&255 運算 ( 255 的二進制數為11111111)。

熱點內容
游戲伺服器php 發布:2024-11-02 10:21:51 瀏覽:953
家鄉編程創 發布:2024-11-02 10:11:32 瀏覽:282
ipad和安卓板玩游戲哪個好 發布:2024-11-02 10:02:37 瀏覽:804
郵箱密碼怎麼查看 發布:2024-11-02 09:59:46 瀏覽:724
wand應用怎麼安卓下載 發布:2024-11-02 09:57:46 瀏覽:80
為什麼手機銀行密碼是8位 發布:2024-11-02 09:54:19 瀏覽:460
win10搭建一個本地伺服器 發布:2024-11-02 09:53:36 瀏覽:348
git搭建本地伺服器windows 發布:2024-11-02 09:49:23 瀏覽:783
跳過地址的代理伺服器 發布:2024-11-02 09:30:03 瀏覽:388
Linux配置yum源是什麼意思 發布:2024-11-02 09:18:13 瀏覽:526