為什麼C中常用按位異或的方式改變引數本身

2021-04-18 12:50:41 字數 3137 閱讀 7009

1樓:匿名使用者

位運算比邏輯運算快

就像整數除以2一般寫作右移一位 以效率著稱的c.c++ 這些還是很講究的 尤其在晶元裡

c++語言中按位異或賦值是什麼意思

2樓:

c++中資料一般都是按照多少位元組來儲存的,而我們知道乙個位元組是有8位,

記憶體中每一位要麼是1要麼是0,

邏輯運算異或的運算法則為a異或b=a'b或ab'(a'為非a)。

真異或假的結果是真,假異或真的結果也是真,真異或真的結果是假,假異或假的結果是假。就是說兩個值不相同,則異或結果為真。反之,為假。

比如說乙個char型字元'15',在記憶體中表現為00001111,按位異或就是將對應為進行邏輯異或運算,運算結果再賦值給某個變數的某一位

c語言裡的按位異或運算子

3樓:靠名真tm難起

按位異或,其操作符為^,形式為

a^b計算時,根據運算元a和b每位的值,計算結果,當a,b的對應位上值相同時,結果的該位上值為0,否則值為1。

如char a = 0x12, b = 0x34;

a^b= 0x12 ^ 0x34

= b0001 0010 ^ b0011 0100= b0010 0110

=0x26

4樓:夜微空

(|1:「按位與」運算子(&)全1為1,有0則0。0&0=0,1&0=0,1&1=1

2:「按位或」運算子(|)有1則1,全0則0。0|0=0,1|0=1, 1|1=1

3:「異或」運算子(^)相同為0,不同為1。0^0=0,1^0=1,1^1=0

5樓:匿名使用者

1:「按位與」運算子(&)用法是如果兩個相應的二進位制位都為1,則該位的結果值為1否則為0。0&0=0,1&0=0,1&1=1

2:「按位或」運算子(|)用法是如果兩個相應的二進位制位有乙個為1,則該位的結果值為1否則為0。0&0=0,1&0=0,1&1=1

0,1&0=1,1&1=1

3:「異或」運算子(^)用法是如果兩個相應的二進位制位為同號,則該位的結果值為1否則為0。0&0=1,1&0=0,1&1=1

6樓:通訊工程

以下的 答案中異或,解釋錯誤,相同為0,不同為1

7樓:無殼螃蟹

c語言中^為按位異或運算子,若兩個二進位制位相同,則結果為0,不同為1#include "stdio.h"

main()

函式輸出結果為12

將6和10分別轉換為2進製數為0110(前邊補了個0)和1010。然後按照定義進行異或運算

0110 a

1010 b

1100 a和b最左邊第一位和第二位不相同,所以分別為1,第三位和第四位相同,所以分別為0

二進位製數1100轉換為10進製數,結果是12。

8樓:小豬叄兒

a b a xor b

true true false //最大特點在這裡,1 xor 1 = 0

true false true

false true true

false false false

對於電路設計啊什麼的非常實用,平常用的很少。

9樓:程式設計師的每一天

c語言經典例子之使用按位異或運算子

10樓:尺蠖丨蚩

相同取0,不同取1.二目運算

11樓:神一樣的魁苝

|& 按位與

| 按位或

^ 按位異或

1. 按位與運算 按位與運算子"&"是雙目運算子。其功能是參與運算的兩數各對應的二進位相與。

只有對應的兩個二進位均為1時,結果位才為1 ,否則為0。參與運算的數以補碼方式出現。

例如:9&5可寫算式如下: 00001001 (9的二進位制補碼)&00000101 (5的二進位制補碼) 00000001 (1的二進位制補碼)可見9&5=1。

按位與運算通常用來對某些位清0或保留某些位。例如把a 的高八位清 0 , 保留低八位, 可作 a&255 運算 ( 255 的二進位製數為0000000011111111)。

main()

2. 按位或運算 按位或運算子「|」是雙目運算子。其功能是參與運算的兩數各對應的二進位相或。只要對應的二個二進位有乙個為1時,結果位就為1。參與運算的兩個數均以補碼出現。

例如:9|5可寫算式如下: 00001001|00000101

00001101 (十進位制為13)可見9|5=13

main()

3. 按位異或運算 按位異或運算子「^」是雙目運算子。其功能是參與運算的兩數各對應的二進位相異或,當兩對應的二進位相異時,結果為1。

參與運算數仍以補碼出現,例如9^5可寫成算式如下: 00001001^00000101 00001100 (十進位制為12)

main()

c++中,按位或"|"和按位異或"^"有什麼區別?

12樓:手機使用者

按位或只要有一位為1,結果就為1,都為0就為0按位異或只有兩個不同時,結果為1,兩個都相同時為0按位或:

1011

結果為11

按位異或

1011

結果為01

c語言中,^為什麼叫按位異或

13樓:陽光上的橋

你讓回答為什麼要叫異或,這個是大家約定的,前人規定的,沒什麼好回答的,也建議你不要太糾結。

下面我說說異或是什麼,如果你知道,請別生氣,我可以刪除。異或是一種二進位制運算,參加運算的兩個二進位制不同結果就為1,否則為0,也就是:

1^0=1

0^1=1

1^1=0

0^0=0

按位異或是邏輯異或的擴充套件,參加運算的兩個數的二進位製文進行異或運算,例如3^7=4,三個數的二進位制形式分別是0011、0111、0100

14樓:陽光的雷咩咩

異或是乙個邏輯代數的術語啊。按位的意思就是按每個二進位制位。相應的 & 你可以說是按位與, | 是按位或。 相反 && 和 || 就不是按位了。

c語言異或操作,C語言裡的按位異或運算子

你是打算對數字進行異或,需要將字元變成數字,異或完後再變回字元我只簡單寫了一下,沒有異常處理,順便說你b中f少了乙個 include int ctoi char c char itoc int i int main printf s n c return 0 c語言的異或操作是位操作的一種,其運算符...

1什麼是園林花卉或花卉,園林綠化樹苗中常用的花卉有哪些

花卉 是具有觀賞價值的草本和木本植物。園林花卉 是指園林中起裝飾 組景 分隔空間 庇蔭 防護 覆蓋地面的植物,大多具有形體美 色彩美 芳香美 意境美的特點。園林綠化樹苗中常用的花卉有哪些 可以大面積種植的園林花卉有哪些?波斯菊 向日葵 熏衣草 二月蘭 蔥蘭 吉祥草 reineckia carrlea...

p異或q異或r為什麼是命題公式,p與非q與非r為什麼不是命題公式

在數學中,一般把判斷某一件事情的陳述句叫做命題。數學中的定義 公理 公式 性質 法則 定理都是數學命題。這些都是用推理方法判斷命題真假的依據。一般地,在數學中,我們把在一定範圍內可以用語言 符號或式子表達的,可以判斷真假的陳述句叫做命題。數學命題通常由題設和結論兩部分組成 題設是已知事項,結論是由已...