當前位置:首頁 » 編程語言 » c語言位操作
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言位操作

發布時間: 2022-02-05 10:58:30

『壹』 c語言 什麼叫位操作

第一題
#include<stdio.h>
main()
{
int a,b;
printf("請輸入一個位於0~65535之間的正整數:");
scanf("%d",&a);
b=(a>>3)&15;//取四位
printf("b=%d\n",b);
}
第二題
#include <stdio.h>
main()
{
int a,b,c;
scanf("%d%d",&a,&b);
if(a<b)
{c=b;
b=a;
a=c;}
while(a!=b)
{a=a>>1;
if(b>a)
break;}
if(a==b)
printf("yes");
else
printf("no");
}
你看看對不對

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

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

分析如下:

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

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

(2)c語言位操作擴展閱讀

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

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

『叄』 C語言中的位運算是怎樣的

如果你把所有的操作數都用二進制來表達就清晰了,如下

位與 & 相同位按與來運算即可 如:
1 & 2 =0
-------------
二進制是這樣的 01 & 10 = 00

位或 | 一樣,按位來或即可
1|2 = 3
--------------
二進制是這樣: 01|10=11

其他位運算都是按二進制位來運算的,你轉換成2進制就好理解了

『肆』 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了。

『伍』 c語言位運算是什麼

運算:C語言的運算非常靈活,功能十分豐富,運算種類遠多於其它程序設計語言。

在表達式方面較其它程序語言更為簡潔,如自加、自減、逗號運算和三目運算使表達式更為簡單,但初學者往往會覺的這種表達式難讀,關鍵原因就是對運算符和運算順序理解不透不全。

當多種不同運算組成一個運算表達式,即一個運算式中出現多種運算符時,運算的優先順序和結合規則就會顯得十分重要。

運算符號:

比較特別的是,比特右移(>>)運算符可以是算術(左端補最高有效位)或是邏輯(左端補0)位移。

例如,將11100011右移3比特,算術右移後成為11111100,邏輯右移則為00011100。因算術比特右移較適於處理帶負號整數,所以幾乎所有的編譯器都是算術比特右移。

運算符的優先順序從高到低大致是:單目運算符、算術運算符、關系運算符、邏輯運算符、條件運算符、賦值運算符(=)和逗號運算符。

『陸』 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語言位運算

這個很簡單,你打開電腦的計算器,將521輸入,然後用二進制顯示,你看到的是:1000001001,
123是:1111011;與123 按位與的結果就是0000 1001;用十進制顯示的時候就是9,其他的計算也是這樣算出來的,你試下就知道了,在此我就不一一舉例了。
&:這是與操作,只有1&1才能是1
|:這是或操作,有一個是1結果就是1
~:取反操作,

『捌』 C語言位操作運算符 &,|,~,^,<<,>>是干什麼的

& 按位與運算,如:1010 & 1100 = 1000
| 按位或運算,如:1010 & 1100 = 1110
~ 非運算,如:a = 1010; ~a = 0101
<<左移,如:1110 << 1 = 1100
>>右移,如:1000 >> 1 = 0100

『玖』 c語言按位運算

unsigned在內存中佔2位元組即十六位,八進制123456轉換為二進制1010011100101110,b=a>>4 b=0000101001110010
c=0000000000001111 b&c即按位與,二進制對應位上全是1才為1,否則為0
d=0000000000000010
即d=2

『拾』 c語言中按位與。。按位或什麼意思

位運算符C語言提供了六種位運算符:

& 按位與
| 按位或
^ 按位異或
~ 取反
<< 左移
>> 右移

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

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