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語言標準中bai,只du規定了無符號數的移zhi位操作是採用邏輯dao移位 即左移 右移都是使回用的邏輯答左移和邏輯右移 而對於有符號數,其左移操作還是邏輯左移,但右移操作是採用邏輯右移還是算術右移就取決於機器了!算術右移和邏輯右移的區別是 算術右移不右移符號位,即最高位,右移後前補0還是1... 其實我覺得你說得對,這個程式編的有些問題,你試著先輸出非空格的字元,程式會跳過 if c 這個判斷,然後lastc c後lastc中就存有你之前輸入的字元,你在輸入空格下次lastc c中就會存有空格。如果你先輸入空格,程式就會崩潰,應為lastc未定義,我用的vs2010已經試過了,你可以試試。望... 可以參考這個 include include include int errorflag typedef structstack int isnumeric char s 判斷 是不是數字 int empty stack s 判斷stack是不是為空 void init stack s 初始化 st...c語言中為什麼左移不分符號數無符號數,而右移分呢
關於C語言中的小問題,關於C語言中的一個小問題
關於C語言中棧的問題