❶ c語言位運算
順著說不知道怎麼和你講,就反過來說吧,首先是-3,你要先把它3的二進制寫出來,就是00000000 00000011 ,然後求它的反碼,就變成11111111 11111100 ,再就是將反碼加1變成它的補碼,11111111 11111101,這就是-3在計算機中所存儲的形式,因為是要求按位求反,所以-3在計算機中的形式經過語言的變化就變成00000000 00000010,這個數就是2在計算機中的存儲形式,你這個問題就是將我的回答反過來用就是了。
❷ C語言位運算!!!
這是二進制的位運算: 10D^5D=1010B^0101B=1111B=15D 按照異或運算的規則,兩個位相同得到0,不同得到1
❸ C語言中的位運算是怎樣的
如果你把所有的操作數都用二進制來表達就清晰了,如下
位與 & 相同位按與來運算即可 如:
1 & 2 =0
-------------
二進制是這樣的 01 & 10 = 00
位或 | 一樣,按位來或即可
1|2 = 3
--------------
二進制是這樣: 01|10=11
其他位運算都是按二進制位來運算的,你轉換成2進制就好理解了
❹ c語言位運算
這個涉及到運算符的優先順序和結合性,搜索一大堆
m=a>b 這個表達式,因為關系運算符的優先順序大於賦值運算符,所以相當於m=(a>b)
a為5 b為6 所以a>b為假 即為0 將0賦給m
n=c>d 同理 n的值為0
0&0 結果為0
❺ c語言位運算,求詳解!!
結果是3 ^異或符號 & 與 符號
二進制你可以用電腦的計算器算出來,或者除2取余法
a^b :
a二進制 0001
b二進制 0010
異或結果 0011
所以a^b結果為0011就是 3
然後3&3 就是 0011&0011 結果 0011 = 3
最終結果為 3
❻ 關於C語言中的位運算。
位運算能使c具有匯編的某些能力
比如提高運算速度啊 和硬體更好的偷情啊 節約存儲空間什麼的 等等
比如說吧
像樓上的直接移位就比使用/運算符快些哈
❼ c語言之中的位運算符是怎麼運算的呢
C語言提供了表12—1所列出的6種位運算符以及表12-2所列出的5種擴展運算符。
表12-1
運 算 符 含 義 優 先 級
~ 按位求反 高
<< 左移
低
>> 右移
& 按位與
^ 按位異或
| 按位或
表12-2
擴 展 運 算 符 表 達 式 等 價 的 表 達 式
<<= a<<=2 a=a<<2
>>= b>>=1 b=b>>1
&= a&=b a=a&b
^= a^=b a=a^b
|= a|=b a=a|b
【說明】
位運算符中,只有「反求」(~)是單目運算符,即要求運算符兩側各有一個運算量,其餘均為雙目運算符。
運算的運算對象只能是整形或字元型數據,不能是其他類型的數據,在VC 6.0中整形數據佔4個位元組,字元型數據佔1個位元組。
參與運算時,操作數都必須首先轉換成二進制形式,然後再執行相應的按位運算。
各雙目運算符與賦值運算符結合可以組成擴展的賦值運算符,見表12-2.
12.2 位運算符詳解
12.2.1 按位與運算
按位與運算「&」的運算格式:
操作數1&操作數2
【說明】
其中「操作數1」和操作數「2」必須是整型或字元型數據。
按位與運算規則是:當參加運算的2個二進制數的對應位都為1,則該位的結果為1,否則為0,即0&0=0,0&1=0,1&0=0,1&1=1。
【例如】
4&5的運算如下:
00000100 (4)
(&) 00000101 (5)
00000100 (4)
因此,4&5的值為4。
可以利用按位與運算來實現一些特定的功能,下面介紹幾種常見的功能。
清零
如果想將一個數的全部二進制置為零,只要找一個二進制數,其中個個位要符合以下條件:原來的數中為1的位,新數中相應的位為0。然後使二者進行按位與運算即可達到清零的目的。
【例如】
原有數為171,其二進制形式為10101011,另找一個數,設它為00010100,它符合以上條件,即在原數為1的位置上,它的位值均為0。將兩個數進行&運算:
10101011
(&) 00010100
00000000
當然也可以不用00010100這個數而用其他數(如01000100)也可以,只要符合上述條件即可。任何一個數與「0」按位於之後的結果為0。
娶一個數中某些指定位
【例如】
有一個兩位元組的短整型數x,想要取其中的低位元組,只要將x與八進制數(377)8按位於即可。如圖12-1所示,經過運算「z=x&y」後z只保留x的低位元組,高位元組為0.
x 00 10 11 00 10 10 11 00
y 00 00 00 00 11 11 11 11
z 00 00 00 00 10 10 11 00
圖12-1 取x的低八位數
x 00 10 11 00 10 10 11 00
y 11 11 11 11 00 00 00 00
Z 00 10 11 00 00 00 00 00
圖12-2 取x的高8位
如果想取兩個位元組中的高位元組,如圖12-2所示只需進行運算z = x &(177400)8。
保留一個數的某些位
要想將哪一位保留下來,就與一個數進行&運算,此數在該位取1。
【例如】
有一數01110100,想把其中左面第1、3、5位保留下來,可以這樣運算:
01110100 (十進制數116)
(&) 10101010 (十進制數170)
00100000 (十進制數32)
❽ c語言 位運算
根據運算符優先順序,先運算>>,再運算|,最後運算=
http://www.slyar.com/blog/c-operator-priority.html
優先順序表,自己看。
❾ C語言 位運算
<<(按位左移)
>>(按位右移)
&(按位與)
|(按位或)
∧(按位異或)
~(按位取反)
這個在一般編寫程序不常用