C語言中位操作 3》31值為什麼是

時間 2021-10-17 05:02:00

1樓:匿名使用者

右移操作時,連同符號位同時移動,且符號位是1(負數)時,補1,符號位是0(正數)時補0。char a = -3(-3) = (11111101)2事實上,右移2位後,該數為11111111,次數已經是-1了。

2樓:匿名使用者

c語言中,假設你的機器字長一個位元組是32位,那麼你注意:-3在計算機補碼中表示:1111 1111 1111 1111 1111 1111 1111 1101右移(帶符號)31位:

1111 1111 1111 1111 1111 1111 1111 1111(最後一個1是原先最高的符號位的那個1)。這串數字的補碼的原碼是-1

3樓:匿名使用者

一般情況下是補零,但在處理有符號數的時候會因計算機系統的不同而不同。有符號數高位是零,則右移時高位補零;如果是負數,即高位是1,那麼,有得系統會移入1,稱算術右移,有的會移入0,稱邏輯右移。

如果高位補 0,結果就是1如果高位補1, 結果就是-1

4樓:匿名使用者

-3 在記憶體中表示的話最高位是符號位 負數為 1做右移的話最高位會用1填充。

右移31位的話那麼最後的數就是 0xffffffff了。

這個在記憶體中表示的就是有符號數的 -1

5樓:匿名使用者

怪了,真是怪了。

我覺得應該是1,怎麼計算機算出來是-1.

c語言 表示式3>2>1的值,答案是0,為什麼?

6樓:匿名使用者

首先,真為1,假為0,這是毋庸置疑的。

c語言中》是左結合的,也就是說當兩個》在一起的時候先算左邊的。

那麼3>2是真的,結果就是1;

1>1當然就是假的了。

所以結果為0。

7樓:華衣在盛

這屬於邏輯語句,3>2為真,即為1,1>1為假,故為0

8樓:匿名使用者

0是真的意思吧,也有可能在連續的符號下它只能為0

c語言中>>和<<如何使用?

9樓:匿名使用者

c語言中<< 代表左移運算子,>> 代表右移運算子,位移位運算子是將資料看成二進位制數,對其進行向左或向右移動若干位的運算。

<< 代表左移運算子:左移運算子用來將一個數的各二進位制位全部左移若干位,移動的位數由右運算元指定,右運算元必須是非負值,其右邊空出的位用0填補,高位左移溢位則捨棄該高位。

例如:設無符號短整型變數a為0111(對應二進位制數為0000000100010001),則:a<<3 結果為0888(對應二進位制數為0000100010001000)。

>> 代表右移運算子:右移運算是將一個二進位制位的運算元按指定移動的位數向右移動,移出位被丟棄,左邊移出的空位或者一律補0,或者補符號位,這由不同的機器而定。在使用補碼作為機器數的機器中,正數的符號位為0,負數的符號位為1。

例如:var temp = 56 >> 2 變數temp的值為 14,因為56 (即二進位制的 00111000)向右移兩位等於 14 (即二進位制的 00001110) 。

10樓:路堯家的顧小言

1、左移運算子(<<):按二進位制形式把所有的數字向左移動對應的位數,高位移出(捨棄),低位的空位補零。

格式:需要移位的數字 << 移位的次數

例如:3<<2

3轉換為二進位制是0011,所有數字左移2個位置,空位補0,得到1100,即十進位制數12。

2、右移運算子(>>):按二進位制把所有的數字向右移動對應位移位數,低位移出(捨棄),高位的空位補符號位(正數補零,負數補1)。

格式:需要移位的數字 >> 移位的次數

例如:11 >> 2

11的二進位制為1011,所有數向右移2個位置,因為11是正數,所以高位補0,得0010,是十進位制的2。

11樓:陳麗芬

c語言中的》和《分別是左移運算子和右移運算子,用於整數在二進位制形式的移位運算。

1、左移運算子(<<)

規則:按二進位制形式把所有的數字向左移動對應的位數,高位移出(捨棄),低位的空位補零。

語法格式:需要移位的數字 << 移位的次數,例如: 3 << 2,則是將數字3左移2位。

數學意義:在數字沒有溢位的前提下,對於正數和負數,左移一位都相當於乘以2的1次方,左移n位就相當於乘以2的n次方。

2、右移運算子(>>)

規則:按二進位制形式把所有的數字向右移動對應位移位數,低位移出(捨棄),高位的空位補符號位,即正數補零,負數補1。

語法格式:需要移位的數字 >> 移位的次數,例如11 >> 2,則是將數字11右移2位。

數學意義:右移一位相當於除2,右移n位相當於除以2的n次方。

擴充套件資料:

一、c語言運算子號的種類

1 算術運算子

用於各類數值運算。包括加(+)、減(-)、乘(*)、除(/)、求餘(或稱模運算,%)、自增(++)、自減(--)共七種。

2.關係運算子

用於比較運算。包括大於(>)、小於(<)、等於(==)、 大於等於(>=)

、小於等於(<=)和不等於(!=)六種。

3.邏輯運算子

用於邏輯運算。包括與(&&)、或(||)、非(!)三種。

4.位操作運算子

參與運算的量,按二進位制位進行運算。包括位與(&)、位或(|)、位非(~)、位異或(^)、左移(<<)、右移(>>)六種。

5.賦值運算子

用於賦值運算,分為簡單賦值(=)、複合算術賦值(+=,-=,*=,/=,%=)和複合位運算賦值(&=,|=,^=,>>=,<<=)三類共十一種。

12樓:張震是

>>和《和是c語言中的「右移運算子」。一般情況下,是按位操作。

例如:short int a=8;a=a>>1; 1.a=0 000 1000 2.右移一位後:a= 0 000 100 3.補0:a=0 000

0100 4.化為十進位制數:a=4 舉例:int a=8;a=a>>1; 1.a=0 000 0000 0000 1000 2.右移一位後:

a= 0 000 0000 0000 100 3.補0:a=0 000 0000 0000 0100 4.化為十進位制數:a=4

特點:1、雙目運算子,就像+、-、*、/一樣,格式為(數1)>>(數2)

2、數1是被運算元,如被減數、被除數等;數2是右移位數。

3、優先順序低,結合性:從左向右運算 如:8>>1=?表示將被移數向右移動1位 如何操作?

化十進位制數為(注意了)對應的二進位制數,對應指格式對應。 通通右移,不足補0 3.化為十進位制數。

擴充套件資料

一、c語言運算子號的種類

1 算術運算子

用於各類數值運算。包括加(+)、減(-)、乘(*)、除(/)、求餘(或稱模運算,%)、自增(++)、自減(--)共七種。

2.關係運算子

用於比較運算。包括大於(>)、小於(<)、等於(==)、 大於等於(>=)

、小於等於(<=)和不等於(!=)六種。

3.邏輯運算子

用於邏輯運算。包括與(&&)、或(||)、非(!)三種。

4.位操作運算子

參與運算的量,按二進位制位進行運算。包括位與(&)、位或(|)、位非(~)、位異或(^)、左移(<<)、右移(>>)六種。

5.賦值運算子

用於賦值運算,分為簡單賦值(=)、複合算術賦值(+=,-=,*=,/=,%=)和複合位運算賦值(&=,|=,^=,>>=,<<=)三類共十一種。

6.條件運算子

這是一個三目運算子,用於條件求值(?:)。

7.逗號運算子

用於把若干表示式組合成一個表示式(,)。

8.指標運算子

用於取內容(*)和取地址(&)二種運算。

9.求位元組數運算子

用於計算資料型別所佔的位元組數(sizeof)。

10.特殊運算子

有括號(),下標,成員(→,.)等幾種。

13樓:非常可愛

在c語言中 《與<<=只有一個區別就是作用不同。

c語言中的》和《分別是左移運算子和右移運算子,用於整數在二進位制形式的移位運算;

關係運算子用於比較運算。包括大於(>)、小於(<)、等於(==)、大於等於(>=);小於等於(<=)和不等於(!=)六種。

在c語言中x<<=1等於x=x<<1,是把x左移1位以後值儲存回x裡,x發生變化了。

擴充套件資料結合方向右結合(自右至左)單目運算子

!邏輯非運算子

~按位取反運算子

++自增運算子

--自減運算子

-負號運算子

(型別)型別轉換運算子

*指標運算子

&地址與運算子

sizeof長度運算子

14樓:匿名使用者

這是c語言中的「右移運算子」。一般情況下,他是按位操作。 特點:

1.雙目運算子,就像+、-、*、/一樣,格式為(數1)>>(數2) 2.數1是被運算元,如被減數、被除數等;數2是右移位數。

3.優先順序低,結合性:從左向右運算 如:

8>>1=?表示將被移數向右移動1位 如何操作? 1.

化十進位制數為(注意了)對應的二進位制數,對應指格式對應 2.通通右移,不足補0 3.化為十進位制數 舉例:

short int a=8;a=a>>1; 1.a=0 000 1000 2.右移一位後:

a= 0 000 100 3.補0:a=0 000 0100 4.

化為十進位制數:a=4 舉例:int a=8;a=a>>1; 1.

a=0 000 0000 0000 1000 2.右移一位後:a= 0 000 0000 0000 100 3.

補0:a=0 000 0000 0000 0100 4.化為十進位制數:

a=4求採納

15樓:qian一生所愛

答案果然是可以編輯的!

C語言中位操作,C語言位操作運算子 , , , , , 是幹什麼的?

首先32位系統 3預設為整形佔4位元組 32個位 二進位制表示11111111 11111111 11111111 11111101得來方法 3的二進位制位00000000 00000000 00000000 00000011,取反補1後等到上面的值 再看下 1的二進位制11111111 11111...

C語言中5 6的值是多少,C語言中5 6的值是多少?5 6的值又是多少?

何曼婷囖 是4,是按位與的意思,是按位或的意思。的計算規則如下1 1 1。1 0 0 1 0 0 0。的計算規則如下1 1 1 0 0 1 1。0 0 0。5的二進位制表示為101,6的二進位制位110。所以5 6 100 十進位制就是4。c語言特點 簡潔緊湊 靈活方便。c語言一共只有32個關鍵字,...

c語言中!10的值為0,為什麼,c語言中a 1 0 的值是什麼

ch陳先生 計算機記憶體儲存的時候認為規定了,只有0,沒有 0。c語言是一門程序導向的 抽象化的通用程式設計語言,廣泛應用於底層開發。c語言之所以命名為c,是因為c語言源自kenthompson發明的b語言,而b語言則源自bcpl語言。1967年,劍橋大學的martinrichards對cpl語言進...