看板 Grad-ProbAsk 關於我們 聯絡資訊
※ 引述《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
ken52011219: 移31次應該是剩下最高位元 &為and沒錯 08/04 11:55
kyuudonut: 算術右移 不一定是全部清為0 & 是做 AND 運算沒錯 08/04 11:56
kyuudonut: 可參考 bitwise operation 08/04 11:56
aa06697: sra 補什麼要看正負數 08/04 12:53
aa06697: 不過我記得>>不是算數右移是邏輯右移 所以是補0 08/04 12:57
kyuudonut: 要看那個變數是 signed 或 unsigned 吧? c 只有 >> 08/04 14:12
kyuudonut: compiler 再視 type 給 arthm 或 logic 的右移指令 08/04 14:14
aa06697: 喔喔對 就像樓上說的那樣 太久沒用到這個operator惹qq 08/04 15:11