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
