Guest User

Untitled

a guest
May 27th, 2018
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.54 KB | None | 0 0
  1. (defun twos-complement (number bits)
  2. (declare (integer number)
  3. (positive-fixnum bits))
  4. (let ((machine-size (expt 2 bits))
  5. (max-number-size (expt 2 (- bits 1))))
  6. (assert (< (- max-number-size) number (1- max-number-size)))
  7. ;; Using floor instead of mod due to silly sbcl code deletion warning.
  8. ;; SBCL really ought not be warning on (mod number bits) but it does.
  9. (nth-value 1
  10. (if (< number 0)
  11. (floor number machine-size)
  12. (floor number (- machine-size))))))
Add Comment
Please, Sign In to add comment