c語言左移右移的問題或,C語言左移右移的問題或

2021-03-04 05:12:23 字數 2526 閱讀 5361

1樓:匿名使用者

左移 右移不會修改a本身

a=ox32 (16進製制) 0011 0010b=a<<2

這個時候b=1100 1000 對

那麼此時a=0011 0010

繼續c=a<<2

請問c是在原來a的初值(ox32)上移動

這個時候c=1100 1000

2樓:圍城

b=a<<2

這個時候b=1100 1000 對!

那麼此時a=0011 0010 沒變

接著c=a<<2

c是在原來a的初值上移動,因為a沒變

c=b=1100 1000

最後c=b=1100 1000

a=0011 0010

3樓:匿名使用者

a << 2 是不影響a 的值的,就像a +1不會把a值加1一樣 。

a << 2只是乙個表示式,返回的是表示式計算得到的值,其中並沒有賦值(『=』)操作啊。

關於c語言的左移(<<)和右移(>>)

4樓:匿名使用者

左移比較簡單,右邊補0(移幾位就補幾個0),左邊丟掉。

右移比較複雜,右移分兩種:

(1)邏輯右移,左邊補0(移幾位補幾位),右邊移出去的丟掉。

(2)算術右移,左邊補最高位(即原來的最高位是0就補0,是1就補1,因為最高位代表符號,這樣可以保證負數不會變成正數),右邊丟掉。

5樓:我不知道啊啊

可以定義乙個中間變數暫存要被移出去的位,正常移位之後再或上這個中間變數即可~

c程式中,左移「<<」、右移「>>」 的具體用法是什麼?

6樓:匿名使用者

c語言中,「

<<」為左移運算子,「>>」為右移運算子。

具體使用方法如下:

1、左移運算子(<<)

將乙個運算物件的各二進位制位全部左移若干位(左邊的二進位制位丟棄,右邊補0)。

例:a = a << 2 將a的二進位制位左移2位,右補0,左移1位後a = a * 2;

若左移時捨棄的高位不包含1,則每左移一位,相當於該數乘以2。

2、右移運算子(>>)

將乙個數的各二進位制位全部右移若干位,正數左補0,負數左補1,右邊丟棄。

運算元每右移一位,相當於該數除以2。

例如:a = a >> 2 將a的二進位制位右移2位。

左補0 or 補1 得看被移數是正還是負。

7樓:匿名使用者

這是兩個位操作運算,是對引數二進位制方式的位移,移動後,空出的位用0補上。例如:

0111 0101 b << 2 :對這個數左移二位後:1101 0100 b;

再如:5 << 3 :先轉換成二進位制:0000 0101 b << 3 = 0010 1000 b = 0x28

c語言中的左移<<和右移>>怎樣運算的

8樓:雲冷宰迎南

移位操作符的兩個運算元必須是整型的。整個移位表示式的值的型別也是整型的,而且,左移位操作符與右移位操作符的運算並不對稱。

9樓:hunter影

左移 是指向左移動

右移 是指向右移動

具體指的是二進位製數平行移動

例如 001101 《2

變化 110100

其他也相同

大神能詳細說說,c語言中右移,左移,按位或,是怎麼用的?能給個例子?<< >> ^

10樓:城隍廟街景

int a=1;

a<<=1; // a=2

a>>=1; //a=1

a= a^a; //a=0

11樓:小黑跳大不解釋

這怎麼舉例。。。你有什麼不懂 我告訴你好了

關於c語言左移/右移的問題 20

12樓:我瓦解的精彩

hbyte_later = hbyte << 8; //這裡並沒有使hbyte成為0!!而是hbyte_later=0

0100 1010 //這是4a的二進位制

1000 0000 //這是80的二進位制

4a左移8位

0100 1010 0000 0000 //對應的10進製值為18944,且80對應的10進製為127

/**18944+127為什麼不能等於19072?

*/這次答題,這麼用心,題主還是多給點分吧

c語言中的<<和>>左右移運算子有什麼作用,謝謝!

13樓:匿名使用者

左移運算子「

<<」是指將乙個數的各個二進位全部左移若干位 左移的過程中右邊則補0,高位溢位捨棄不用。一般情況下【不包括左移高位溢位捨棄的數中不包含1的情況】左移n位後,使該數變成原來數的2的n次方倍。右移相反

關於C語言左移右移的問題,關於C語言左移右移的問題

hbyte later hbyte 8 這裡並沒有使hbyte成為0!而是hbyte later 0 0100 1010 這是4a的二進位制 1000 0000 這是80的二進位制 4a左移8位 0100 1010 0000 0000 對應的10進製值為18944,且80對應的10進製為127 18...

C語言中關於左移運算問題,c語言中關於左移運算子的問題

a沒有變啊,b a 3的意思是把a左移後的結果賦值給b 就像 b a 3 b的值是a 3但是a本身沒有加3的!a 3 不會改變 a 的值。c中只有 運算子會改變變數的值,其他不會 之類不算 左移運算子不是 運算子,本身是不會改變的呀。c語言中關於左移 運算子的問題 原因 第乙個k 1只是表示k左移一...

C語言問題,C語言問題

符合,相當於一個字元,ascii字元可以直接轉成short整型數字。101 不符合,這是一個字串,不能作為常數。不符合,因為 會對雙引號轉義,找不到另一個雙引號。會出錯。而且就算是 也不符合,因為編譯器會把它理解成一個字串,而非單個字元。e3不符合。019不符合,0開頭代表8進位制數,不能出現9。0...