27 lines
633 B
Plaintext
27 lines
633 B
Plaintext
(defun bitwise (a b)
|
|
(lists:map
|
|
(lambda (x) (io:format "~p~n" `(,x)))
|
|
`(,(band a b)
|
|
,(bor a b)
|
|
,(bxor a b)
|
|
,(bnot a)
|
|
,(bsl a b)
|
|
,(bsr a b)))
|
|
'ok)
|
|
|
|
(defun dec->bin (x)
|
|
(integer_to_list x 2))
|
|
|
|
(defun describe (func arg1 arg2 result)
|
|
(io:format "(~s ~s ~s): ~s~n"
|
|
(list func (dec->bin arg1) (dec->bin arg2) (dec->bin result))))
|
|
|
|
(defun bitwise
|
|
((a b 'binary)
|
|
(describe "band" a b (band a b))
|
|
(describe "bor" a b (bor a b))
|
|
(describe "bxor" a b (bxor a b))
|
|
(describe "bnot" a b (bnot a))
|
|
(describe "bsl" a b (bsl a b))
|
|
(describe "bsr" a b (bsr a b))))
|