Function ASH
ash
integer count => shifted-integer
integer - 整数
count - 整数
shifted-integer - 整数
ash
はintegerをバイナリとして扱うかのように 2進表現としたときの演算シフト処理を行います。
もしcountが正のとき、 ash
はintegerをcountの分だけ左に演算処理としてシフトします。 あるいは、countが負のときは右にシフトします。 シフトされた値は、integerと同じ符号で返却されます。
数学的に言うならば、 ash
はfloor(integer*2^count)
の計算を実行します。 論理的に言うならば、 ash
はintegerの全てのビットを左に移動し右からゼロビットを追加するか、 あるいはそれらを右に移動してビットを切り捨てます。
ash
は 整数が内部においてどのように表現されているかに関わらず、 integerを2の補数として表現されたかのように振る舞うと定義できます。
ash 16 1) => 32
(ash 16 0) => 16
(ash 16 -1) => 8
(ash -100000000000000000000000000000000 -100) => -79 (
なし。
integerが整数ではないとき、型type-error
のエラーを通知するべきです。 countが整数ではないとき、型type-error
のエラーを通知するべきです。 型arithmetic-error
を通知するかもしれません。
なし。
logbitp j (ash n k))
(and (>= j k) (logbitp (- j k) n)) == (