2

私が使用している言語 ( Brightscript ) には << または >> 演算子はありません。c の << および >> 演算子と同じように機能するビットごとのシフト関数を作成したいと考えています。次は正しいですか?そうでない場合、誰かがより良いアプローチを提案できますか:

Function ShiftRight(InitNum as float, bitsright as integer) as float
  return InitNum / (2 ^ BitsRight)
End Function


function ShiftLeft(InitNum As float, BitsLeft As float) as float

   return InitNum * (2 ^ BitsLeft)

End Function

これらが正しい場合、同等の関数呼び出しは次のようになります。

x = (x<<13)

でしょうか

x = shiftleft(x,13) 

それともそうなるでしょうか

for i = 1 to 13
    x = shiftleft(x,1) 
end for
4

2 に答える 2