2014-02-08 7 views
4

Clojure에서 부호가없는long을 어떻게 정의 할 수 있습니까?Clojure 부호없는 64 비트 정수

가 난 단지 비트 연산에 사용할 것 (또는 표준 라이브러리의 임의의 크기의 정수, 에서 BigInt 또는 의 예를 들어 어떤 종류의?이의 bignum있다), 그래서 기술적으로 이진 데이터가 나타내는 수치 값입니다 별로 중요하지는 않지만 여전히 일 때 양수가 2보다 큰 경우> 이 양의 정수로 표시됩니다.

답변

1

long을 적절한 부호없는 표현으로 변환하는 사용자 지정 함수를 작성하는 것이 좋습니다. 같은

뭔가 :

(defn long-str [x] 
    (if (> x 0) 
     (str x) 
     (str (+ (bigint x) 18446744073709551616N)))) 

(long-str -1) 
=> "18446744073709551615" 
+1

가 아니면 그냥 내 방법은'bigint'을 반환하고 사용자가 변환을 수행 할 수있을 수 있습니다. 고마워, 나는 bigint에 대해 몰랐다. –

관련 문제