(rontolisp) docs
← cl パッケージの関数

ash

(ash integer count)

integer を count ビット分だけ算術シフトします。count が非負のときは左へ(より上位のビットへ向かって)、負のときは右へ(符号拡張付きで)シフトします。結果はどのバックエンドでも任意の大きさの正確な整数になります。結果を構築できない左シフト(結果が 2147483647 ビット以上になるもの、wasm-GC バックエンドではカウントが 33554432 を超えるもの)は、ASH: shift count too large: とカウントを報告する捕捉可能な simple-error を通知します。0 はどのカウントでも 0 のままで、値の幅を超える右シフトは 0 か -1 を返します。