Hello Jan,

You will find => there <https://codereview.scilab.org/cat/21421%2C2%2Cscilab/modules/elementary_functions/macros/bitget.sci> a fixed version of bitget() for big u-int64 integers.
You can patch your Scilab 6.1.0 installation in the following way:

 * download and unzip the file. rename it bitget.sci
 * put bitget.sci in the SCI/elementary_functions/macros directory
 * Run the following Scilab code in the console:
   cd SCI/elementary_functions/macros
   predef clear
   genlib elementary_functionslib
   clear bitget

And then test and use bitget in the current session and all forthcoming ones.

Regards
Samuel

Le 27/02/2020 à 16:17, JLan a écrit :
I wonder if i have misunderstood the documentation for bitget, or if this is
a bug? It seems to me that numbers > 2^53 are still not handled correctly.
--> a=uint64(2^61)
  a  =   2305843009213693952
--> b=uint64(2^61)+1
  b  =   2305843009213693953
--> bitget(a,1:64)
  ans  =
          column 1 to 32
   0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
0  0  0  0  0  0  0
          column 33 to 64
   0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
0  0  0  0  1  0  0

--> bitget(b,1:64)
  ans  =
          column 1 to 32
   0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
0  0  0  0  0  0  0
          column 33 to 64
   0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
0  0  0  0  1  0  0

_______________________________________________
users mailing list
[email protected]
http://lists.scilab.org/mailman/listinfo/users

Reply via email to