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...