1樓:網友
首先移位運算子的優先順序是大於賦值運算子的。
b=0x0011是十六進位數 他的十進位數為1*16+1*1=17二進位數為00010001向右移動4位則為左補0 為00000001 十進位為1.所以a=1 b=17
另外二進位數的左移結果就是十進位數 每相對移動1位乘以2 反之右移除以2.(小數要取整數)
比如17=00010001 右移4位 結果為17/16=1如果右移2為 結果為 17/4=4 00000100所以可以直接得到答案。給分!
2樓:網友
b=0x0011 是16位二進位0000000000010001 轉換成十進位是17,即b=17
a=b>>4 是將b向右移4位左邊補0 0000000000000001 轉換成十進位 a=1
注意 a=b>>4 只是在計算a b的值不變。
所以最後 1,17
3樓:
1,17 16進位0x0011=17十進位,再化成2進位就是00010001(一般是八個位算)再按右移四位,超出會溢位(所以右移四位後結果為00000001,再十進位輸出)
c++語言中左移位賦值是什麼意思
4樓:四舍**入
例如:m = 1;
m <<= 2;意思就是把m左移兩位後,再賦值給m。原來m的二進位數值是0001,左移兩位後就變成了二進位的0100,也就是十進位的4,所以結果是m=4。
所以可以看出左移一位,相當於原來的數值乘以2,左移n位,就相當於乘以了2的n次方。
關於c語言的位移問題
5樓:網友
答: char的資料左移八位,那麼低八位會變成0<<8)+b;因為左邊c是unsigned int型別,c語言會進行強制型別轉換,把(a<<8)和b當作unsigned int資料型別,這樣,如果a=1,那麼c將等於c=(1<<8)+b=256+b
這個問題的關鍵點在於c語言在計算的時候會進行強制型別轉換,=右邊的資料型別都會被強制轉換成=左邊的資料型別。換個問題,如果是b=(a<<8),那麼無論我們將會得的b=0
6樓:網友
一般而言不會。一般編譯器會將a擴充套件一下(比如擴充套件到int),然後再加b
不過為了保險起見,你可以c=((unsigned int)a<<8)+b;來得到想要的結果。
關於c語言移位的問題
7樓:那年那月
位移量k以2進製表示,低log 2 w 位剛好可以表示w位,多出來的超出了w位,是沒有意義的,所以只取小於等於w位的數值,也就是k mod w
8樓:網友
舉個例子,比如k=33,w=32,那麼k的二進位形式即為100001,k的低5(==log32)為不就是00001(即十進位的1)嗎?使用這種方式計算,移1位。
而使用k mod w的方式計算,33 mod 32 得到 1,移1位。
兩種方法計算得到的結果是統一的。
9樓:匿名使用者
如果是乙個w位的二進位數,如果要移動k>=w位,移動多少位後面補多少0,所以結果為0
10樓:網友
十進位的32等於0b11111,不是0xffffffff
11樓:網友
只考慮位移量的log2w的意思是,如果把位移量k換算成二進位的話,比如說,w為32,log2w就是5,k為32,換算成二進位就是100000,也就是隻考慮後5位,這不就相當於k對m取餘麼,所以下面一句也就可以理解了。。我以為舉個例子會比較好理解的。。下面還是附上我整個的思考邏輯吧。。
當移動乙個w位的值時,移位指令只考慮位移量的低log 2 w位c語言中規定的w位數一般為。
假設k的低log 2 w位的值為u
那麼高於log 2 w位的值顯然都是w的倍數k=n*w+u
其中n>=0,當n=0的時候,k=1的時候,k>=m所以k mod w = (n*w+u) mod w = u
c語言中位移位運算子C語言中位移位運算子
位移運算子 符號 描述 左移 右移 位移運算子作用於其左側的變數,其右側的表示式的值就是移動的位數,運算結果就是移動後的變數結果。b a 2 就是a的值左移兩位並賦值為b。a本身的值並沒有改變。向左移位就是在低位補0,向右移位就是在高位上補0。右移時可以保持結果的符號位,也就是右移時,如果最高位為1...
c語言變數
bit ircvstr unsigned char sla,unsigned char suba,unsigned char s,unsigned char no 在迴圈中 for i 0 i s rcvbyte ack i2c 0 s 再看 語句 s rcvbyte 中的 s。這個 s的含義是將 ...
C語言中移位運算子有什麼用嗎怎麼感覺可以單純用乘法除法代替呢
在計算機中所有資料儲存為二進位制,每一位即2的次方形式,移位相當於只是去掉末尾或增加一位再讀取資料,相比加減乘除運算步驟則大減少 在微控制器或者嵌入式系統中 移位可以提高很多執行效率。c語言中的位運算有什麼優點?很多高階的動態規劃題目或者一些基礎的運算往往需要較高的執行效率和較低的空間需求,或者需要...