Я хотел бы использовать Побитовое функции (bit-shift-right
, bit-and
и т.д.) в Clojure, где операнды беззнаковые 16-битные целые числа.беззнаковые 16-битные целые числа в Clojure
16-битное целое число является десятичным числом от 0 до 65535, в качестве альтернативы двоичного числа от 0000 0000 0000 0000 1111 1111 1111 1111.
Например здесь 123 является java.lang.Long, так что будет производят неправильный ответ:
(bit-not 123)
Как сделать 123 беззнаковое 16-битное целое, так что выше производит правильный ответ, который в десятичной системе счисления 65412?
0000 0000 0111 1011 (123) должно стать 1111 1111 1000 0100 (65412).
Я проверил двойную проверку с калькулятором, и 65412 - вот какой ответ. Это также то, что 123 в этой ссылке: http://adventofcode.com/2015/day/7 –
@ChrisMurphy Упс - маска должна быть '16rFFFF', а не' 16rFF00'. Исправленный. – Thumbnail