Best I can come up with at the moment is
(([:<.2^.1>.>./@,) (<.@%&2@{.,2&|)@]^:["1 ,"0)
Note that this version does not handle negative numbers. If I wanted
that, I would probably use (except not split across two lines):
(([:<.2^.1>.>./@,@:((2 * | - 1:)^:(<&0))) (<.@%&2@{.,2&|)@]^:["1 ,"0)
This is a different result than the #: monad gives, for negative
numbers. However, this result is compatible with #. and getting the
twos complement representation from this result is trivial.
--
Raul
On Tue, Dec 27, 2011 at 7:13 AM, Kip Murray <[email protected]> wrote:
> Can you write a verb br which returns the binary representation of y without
> using #: or #. ?
>
> br 0
> 0
> br 2
> 1 0
> br i. 5
> 0 0 0
> 0 0 1
> 0 1 0
> 0 1 1
> 1 0 0
> br _13
> |domain error: br
> | br _13
>
> An inverse I like is
>
> bv =: (2 p.~ |.)"1 :. br
>
> bv br i. 5
> 0 1 2 3 4
> ----------------------------------------------------------------------
> For information about J forums see http://www.jsoftware.com/forums.htm
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm