關於c語言中中左移符號 的問題

2025-07-09 09:50:13 字數 2662 閱讀 4483

1樓:駕我

可能是書上印錯了。

還有「而1左移2位也就是1乘以4等於4 也就是0000 1000 」這個好象是左移了3位了~~

c語言中左移運算子的問題

2樓:樸丹樊鳥

a沒有變啊,b=a

3的意思是把a左移後的結果賦值給b就像b

a+3;b的值是a+3但是a本身沒有加3的!

3樓:

char ch='e'; 十六進位0x65'e' 等於 二進位 0110 0101

ch=ch<<4;

左移4位 得 二進位 0101 0000

高位0110 溢位, 自動丟失)

賦還到ch裡。

二進位 0101 0000 是 p, 十六進位 0x50#include

void main()

c語言中 有關移位時的問題

4樓:阿冬

32位的晶元,位移操作的處理是這樣的:

左移時移出的高位全部丟棄,低位全補0,所謂移出的高位是指超過32位,即4個位元組後會丟棄;

右移時,移出的位數全部丟棄,對於無符號數,則高位補0;對於有符號數,則符號位補0還是1,不確定。

另外說一點,你的**中8<

5樓:網友

如果你把表示式再轉成unsigned char型,那麼06就丟了,否則單純這個表示式的結果為0x00006000,從機器角度來講,移位只針對32位,也就是說先會把a擴充套件成32位再做移位操作。

在c語言裡面移位符號<<,>>是怎樣運算的,仁兄們幫幫我啊!!!

6樓:槍鋒戰士

先要了解一下c語言裡所有的位運算都是指二進位數的位運算。即使輸入的是十進位的數,在記憶體中也是儲存為二進位形式。

<」用法:

格式是:a<=0。

功能:將整型數a按二進位位向左移動m位,高位移出後,低位補0。

>」用法:

格式是:a>>m,a和m必須是整型表示式,要求m>=0。

功能:將整型數a按二進位位向右移動m位,低位移出後,高位補0。

7樓:妙士酸奶

《相當於乘法運算,移幾位,就乘以2的多少次方,低位補0,高位捨去。

則相反,當除法運算,高位補0,低位捨去。

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

8樓:網友

首先要知道是二進位按位移動,且用0補位。比如a=5<<1,就是a等於5左移1位,具體就是先把5換算成二進位0101,然後所有位左移一位,右邊用0補位,就變成了1010.

9樓:l舊夢顏

<< 是移位操作,數字在計算機中儲存為2進位。

2 <<1 2的二進位為10 左移及在10後面加0 變成100,等於4,及整個數字擴大了2倍,右移反之,縮小2倍。

10樓:網友

int a=297;

int b=a<<3;就是a左移三位。

int c=a>>2;就是右移兩位。

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

11樓:網友

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

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

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

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

12樓:我不知道啊啊

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

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

13樓:我瓦解的精彩

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語言的左移運算子

14樓:網友

為什麼計算出來的資料了。

二進位 1111 1110

估計樓主你的這些資料應該是p1的,而temp的值是二進位 0000 0001

注:~temp只是求反並不改變temp本身的值,對temp向高位移,低位是補0的而不會把前面的1換到後面來,

15樓:網友

1、用來將乙個數的各二進位位全部左移若干位。

2、例如:將a的二進位數左移2位,右補0。若a=15,即二進位數00001111,左移2位得00111100,即十進位數60(為簡單起見,用8位二進位數表示十進位數15,如果用16位二進位數表示,結果是一樣的)。

c語言中為什麼左移不分符號數無符號數,而右移分呢

因為在c語言標準中bai,只du規定了無符號數的移zhi位操作是採用邏輯dao移位 即左移 右移都是使回用的邏輯答左移和邏輯右移 而對於有符號數,其左移操作還是邏輯左移,但右移操作是採用邏輯右移還是算術右移就取決於機器了!算術右移和邏輯右移的區別是 算術右移不右移符號位,即最高位,右移後前補0還是1...

關於C語言中的小問題,關於C語言中的一個小問題

其實我覺得你說得對,這個程式編的有些問題,你試著先輸出非空格的字元,程式會跳過 if c 這個判斷,然後lastc c後lastc中就存有你之前輸入的字元,你在輸入空格下次lastc c中就會存有空格。如果你先輸入空格,程式就會崩潰,應為lastc未定義,我用的vs2010已經試過了,你可以試試。望...

關於C語言中棧的問題

可以參考這個 include include include int errorflag typedef structstack int isnumeric char s 判斷 是不是數字 int empty stack s 判斷stack是不是為空 void init stack s 初始化 st...