Yes, yes - that's what I mean. Things get a little muddled on Friday
afternoon. The reader converts the representation, and there's not a
fast/easy way to get the original representation back and manipulate it.
On Mar 12, 2010, at 4:53 PM, Kevin Downey <redc...@gmail.com> wrote:
uh, you are confusing representation of the thing with the thing.
Integers don't have bases, bases are used when displaying them. The
reader does not convert a "2r0" to a "base-10 Integer value" because
there is no such thing.
On Fri, Mar 12, 2010 at 4:23 PM, Brendan Ribera
<brendan.rib...@gmail.com> wrote:
Whenever you use the "2r0" format, the reader automatically
converts it to
its base-10 Integer value. This transformation happens at the
reader level
right now -- check out the 'matchNumber' method in LispReader.java
for
details. So (as far as I can tell) this means that there is no
standalone
binary representation for you to use; that is, there's no direct
way back
from an Integer value to the value that you entered in your
program. You
*could* do something with Integer/toBinaryString... but then you're
slinging
around strings to represent bits, and that just feels dirty.
Are you sure you need to use bit representations instead of ints?
Can you
not make do with the built in clojure bit-* functions and a bit-
concat like
the one below?
(defn bits-in
"Calculates the minimum number of bits that a given Integer
occupies."
[n]
(inc (int (/ (Math/log n) (Math/log 2)))))
(defn bit-concat
"Concatenates a collection of Integers at the bit level."
[& coll]
(letfn [(concat-fn
[a b]
(bit-or
(bit-shift-left a (bits-in b)) b))]
(reduce concat-fn coll)))
-Brendan
On Fri, Mar 12, 2010 at 2:26 PM, Scott <sbuck...@gmail.com> wrote:
Two questions
How do I write a function 'bit' that converts an integer to binary
representation:
(bit 0) -> 2r0
(bit 1) -> 2r1
(bit 2) -> 2r10
(bit 3) -> 2r11
.
.
.
As well, as function 'bit-concat' with the following behavior:
(bit-concat 2r1 2r00) -> 2r100
(bit-concat 2r0 2r00) -> 2r000
(bit-concat 2r011 2r1100) -> 2r0111100
.
.
.
I looked into formats, but everything defaults to integer
representation. I need to stay in binary representation. Its for a
genetic algorithm with grey coding.
Thanks!
Scott
--
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient
with
your first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient
with your
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--
And what is good, Phaedrus,
And what is not good—
Need we ask anyone to tell us these things?
--
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient
with your first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en