Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- (defun twos-complement (number bits)
- (declare (integer number)
- (positive-fixnum bits))
- (let ((machine-size (expt 2 bits))
- (max-number-size (expt 2 (- bits 1))))
- (assert (< (- max-number-size) number (1- max-number-size)))
- ;; Using floor instead of mod due to silly sbcl code deletion warning.
- ;; SBCL really ought not be warning on (mod number bits) but it does.
- (nth-value 1
- (if (< number 0)
- (floor number machine-size)
- (floor number (- machine-size))))))
Add Comment
Please, Sign In to add comment