twoscomplement i: 4 NB. error 1 0 0 1 0 1 1 1 0 1 1 1 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0
rp =: [: }: [: i: 2 ^ <: NB. representable in y bits rp 3 _4 _3 _2 _1 0 1 2 3 twoscomplement rp 3 NB. OK 1 0 0 1 0 1 1 1 0 1 1 1 0 0 0 0 0 1 0 1 0 0 1 1 On 12/14/2011 9:13 AM, Raul Miller wrote: > The subject line of this thread is arguably wrong -- there are a > variety of "good ways" of decomposing integers to binary. > > That said, it's interesting to think about the various proposals > expressed in terms similar to those which could be used to implement > monadic #: > > antibase2=: #:~ 2 #~ 1 + 2<.@^. 1>.>./@,@:|@:<. > twoscomplement=: #:~ 2 #~ 1 + 2<.@^. 1 +>./@,@:|@:<. > signwithbits=: #:~ 0, 2 #~ 1 + 2<.@^. 1>.>./@,@:|@:<. > > (In all cases the #: here is dyadic, so these definitions are > independent of the definition of monadic #:) > > antibase2 i: 3 > 0 1 > 1 0 > 1 1 > 0 0 > 0 1 > 1 0 > 1 1 > twoscomplement i: 3 > 1 0 1 > 1 1 0 > 1 1 1 > 0 0 0 > 0 0 1 > 0 1 0 > 0 1 1 > signwithbits i: 3 > _1 0 1 > _1 1 0 > _1 1 1 > 0 0 0 > 0 0 1 > 0 1 0 > 0 1 1 > > There's also (* * #:) but that one assumes the antibase2 implementation... > ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm