HP Forums
Integer Confusion and : - Printable Version

+- HP Forums (https://www.hpmuseum.org/forum)
+-- Forum: HP Calculators (and very old HP Computers) (/forum-3.html)
+--- Forum: HP Prime (/forum-5.html)
+--- Thread: Integer Confusion and : (/thread-7657.html)



Integer Confusion and : - KeithB - 01-25-2017 03:54 PM

All this talking about random numbers has made me want to port the Marsenne twister to HP-PPL. Most algorithms use bit twiddling and 32 bit integers.

Given the "binary explorer" I assume that most numbers are 64 bit. Is there a way to declare a 32 bit variable/number? I see the intriguing ':' operator, but as far as I could tell, it is undocumented. (It was a bit tedious searching the manual for ':' - whoever wrote the manual sure likes his colons!)

I also see the SETBITS() command. Can I use that on a variable to make it 32 bits?


RE: Integer Confusion and : - Han - 01-25-2017 04:18 PM

You can change the integer bits in the settings page. They can be set to signed or unsigned, and the word size can be up to 64 bits.


RE: Integer Confusion and : - KeithB - 01-25-2017 04:37 PM

Ah, yes, and I see that the default is unsigned, 32 bit which is what I want. Is there anyway to specify that a variable is an integer?


RE: Integer Confusion and : - Tim Wessman - 01-25-2017 06:02 PM

You cannot force a type on variable (that will restrict anything but that type from being stored in it).


#123:32o would be an unsigned, 32 bit integer in octal.
#123:-42h would be a signed, 42 bit integer in hex.
and so on...


RE: Integer Confusion and : - KeithB - 01-25-2017 06:28 PM

Ah, that is why you can have a -32 bit integer! I was wondering why the size of the integer was allowed to be negative.


RE: Integer Confusion and : - Han - 01-25-2017 07:01 PM

(01-25-2017 04:37 PM)KeithB Wrote:  Ah, yes, and I see that the default is unsigned, 32 bit which is what I want. Is there anyway to specify that a variable is an integer?

Not really, but there are R->B and B->R commands to switch between real numbers and "integer" types.


RE: Integer Confusion and : - mark4flies - 01-26-2017 01:30 AM

1 +
For better RNG. Everybody benefits at low cost. Please consider it.


RE: Integer Confusion and : - cyrille de brébisson - 01-26-2017 06:53 AM

Hello,

If you are planning to work with integers in a program, remember that you can access integers bits using the () syntax as in:
LOCAL a:= #12345h;
a(x) to get/set the xth bit in the integer and that
a(x,y) will allow you to set/get the y bits at pos x in the integer.

Cyrille


RE: Integer Confusion and : - KeithB - 01-26-2017 05:03 PM

Thanks. Hard to remember when it is not documented! 8^)

Also, I found that it is much better to work with Lists than Matrices. Lists will store integers, Matrices don't.