Re: [理工] [計組] 除法 算術右移

看板Grad-ProbAsk作者 (123)時間9年前 (2016/08/04 11:32), 編輯推噓2(206)
留言8則, 3人參與, 最新討論串2/2 (看更多)
※ 引述《jordanforme (jordan)》之銘言: : : I是整數變數 哪一個式子可以正確計算出 (I/8)? : A (I+7)>>3 : B (I>0?I>>3:(I+7)>>3) : C I>>3 : D (I+((I>>31)&7))>>3 : 不太確定(B)裡面的? :符號是代表什麼意思 : 我解讀是說 : I如果大於零,I算術右移3bit : else (I+7)右移3bit : 不知道對不對? : 謝謝 問一下D選項是什麼意思? I>>31指的是全部清為0嗎? &是啥意思?and嗎? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 49.159.23.159 ※ 文章網址: https://www.ptt.cc/bbs/Grad-ProbAsk/M.1470281543.A.F42.html

08/04 11:55, , 1F
移31次應該是剩下最高位元 &為and沒錯
08/04 11:55, 1F

08/04 11:56, , 2F
算術右移 不一定是全部清為0 & 是做 AND 運算沒錯
08/04 11:56, 2F

08/04 11:56, , 3F
可參考 bitwise operation
08/04 11:56, 3F

08/04 12:53, , 4F
sra 補什麼要看正負數
08/04 12:53, 4F

08/04 12:57, , 5F
不過我記得>>不是算數右移是邏輯右移 所以是補0
08/04 12:57, 5F

08/04 14:12, , 6F
要看那個變數是 signed 或 unsigned 吧? c 只有 >>
08/04 14:12, 6F

08/04 14:14, , 7F
compiler 再視 type 給 arthm 或 logic 的右移指令
08/04 14:14, 7F

08/04 15:11, , 8F
喔喔對 就像樓上說的那樣 太久沒用到這個operator惹qq
08/04 15:11, 8F
文章代碼(AID): #1NehT7z2 (Grad-ProbAsk)
文章代碼(AID): #1NehT7z2 (Grad-ProbAsk)