integer—an integer.
count—an integer.
shifted-integer—an integer.
ash
performs the arithmetic shift operation on the binary
representation of integer, which is treated as if it were binary.
ash
shifts integer arithmetically left by count bit
positions if count is positive,
or right count bit positions if count is negative.
The shifted value of the same sign
as integer is returned.
Mathematically speaking, ash
performs the computation
floor
(integer· 2^count).
Logically, ash
moves all of the bits in integer to the left,
adding zero-bits at the right, or moves them to the right,
discarding bits.
ash
is defined to behave as if integer were
represented in two's complement form, regardless of
how integers are represented internally.
(ash 16 1) → 32 (ash 16 0) → 16 (ash 16 -1) → 8 (ash -100000000000000000000000000000000 -100) → -79
Should signal an error of type type-error
if integer is not an integer.
Should signal an error of type type-error
if count is not an integer.
Might signal arithmetic-error
.
(logbitp j (ash n k)) ≡ (and (>= j k) (logbitp (- j k) n))