Lsh

提供:GizmoLabs - だいたい CAD LISP なサイト
2009年10月26日 (月) 10:01時点におけるGizmon (トーク | 投稿記録)による版 (ページの作成: ; 構文 : (lsh ''int'' ''numbits'') ; 機能 : 指定されたビット数だけ整数を論理的にビット シフトした結果を返す。 ; 引数 :* int : 整数。 :…)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
構文
(lsh int numbits)


機能
指定されたビット数だけ整数を論理的にビット シフトした結果を返す。
引数
  • int : 整数。
  • numbits : int をシフトするビット数。
numbits 引数が正の場合、int は左にシフトされる。
numbits 引数が負の場合、int 引数は右にシフトされる。
どちらの場合も、シフトの結果として入ってくるビットは 0(ゼロ)で、出ていくビットは破棄される。
numbits 引数を指定しなかった場合、シフトは行われない。
戻り値
ビット シフト後の int 引数の値。 シフト演算後に符号ビット(ビット 31)が 0(ゼロ)になった場合、戻り値は正になる。1 の場合は負になる。引数を何も指定しなかった場合、 0(ゼロ)を返す。
  • 32 より多く左へシフト(32 ビット整数を)した場合、結果が 0になる他の言語(C、C++、Java の >> および <<)とは異なった動作をする。右シフトも同様だが、numbits 引数は、32 で割ったときの剰余とみなされる。


サンプル
(lsh 2 1)
4
---
(lsh 2 -1)
1
---
(lsh 40 2)
160
---
(lsh 8 -1)
4
---
(lsh 24 3)
192



関連事項