A tiny Clojure library for converting decimals to different base representations.
clj -Sdeps '{:deps {com.evanjbowling/base {:mvn/version "0.1.0"}}}' \
-e "(require '[com.evanjbowling.base :as b])(b/to-base 1234567.8901M 13)"
Output:
"342C19.B7571B8C9B₁₃"
Leiningen/Boot:
[com.evanjbowling/base "0.1.0"]
Clojure CLI/deps.edn:
com.evanjbowling/base {:mvn/version "0.1.0"}
Review the Docs.
(require '[com.evanjbowling.base :as b])
There are two main functions:
to-base
- returns a string representationto-base-seq
- returns a sequence of numeric values (For every value v, 0 <= v < base) with two parts: integer sequence and fractional sequence.The sequence version is meant to be useful for exploring the whole sequence (the fractional sequence may be infinite) or for encoding the values in another format (e.g. HTML).
The to-base
function maps every digit value in the sequence to the relevant character for the base.
Convert simple decimals:
(b/to-base 16.25M 2) ; "10000.01₂"
(b/to-base 16.25M 16) ; "10.4₁₆"
Convert larger decimals:
(b/to-base 134983783748.98374983798374M 64) ; "B9tqRVE.-9cHhZXg1G₆₄"
(b/to-base 8561238652.018972M 37) ; "3CH1F0G.0PZaLKFZT7₃₇"
Custom digit mapping:
(b/to-base 16.25M 2 {:b/digit-mapping "XO"}) ; "OXXXX.XO₂"
This library is dedicated to the second sentence of the second paragraph of sections 5.1 and 5.2 on page 11 of rfc6234.
Copyright © 2019 Evan Bowling
Distributed under the Eclipse Public License version 1.0.
Can you improve this documentation?Edit on GitHub
cljdoc is a website building & hosting documentation for Clojure/Script libraries
× close