Thanks for the reply.

So for large ints I should do the shift manually, by multiplying / dividing? 
There is no way to use 33 b. ?



> From: [email protected]
> Date: Sat, 31 Jan 2015 09:39:03 -0500
> To: [email protected]
> Subject: Re: [Jprogramming] Bit Shifting
> 
> bit shifting corresponds to multiplying or dividing by powers of two.
> 
>    shift=: ] * 2 ^ [
>    1 shift 3x
> 6
> 
> Though you may prefer
>    intshift=: ] <.@* 2 ^ [
>    1 intshift 3x
> 6
>    _1 intshift 3x
> 1
> 
> Thanks,
> 
> -- 
> Raul
> 
> 
> On Sat, Jan 31, 2015 at 9:30 AM, Jon Hough <[email protected]> wrote:
> > It seems in J I cannot use the bitshift operator
> > shift =: 33 b.
> > on integers larger than 32 bit unsigned integers (i.e. 2^31).
> >
> > e.g. 1 shift (<: 2^31) has a result
> > but
> > 1 shift 2^31
> > gives a domain error.
> >
> > Is there anyway to perform bitshifting operations on large (extended ?) 
> > integers in J?
> > One possible, although I suppose slow, way is to truncate the binary 
> > representation of the integer
> > (i.e. after using #:) and append zeros on the end.
> >
> > ----------------------------------------------------------------------
> > For information about J forums see http://www.jsoftware.com/forums.htm
> ----------------------------------------------------------------------
> For information about J forums see http://www.jsoftware.com/forums.htm
                                          
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to