Bill Allombert on Wed, 29 Jan 2025 15:51:29 +0100


[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]

Re: 2^[1,3]


On Wed, Jan 29, 2025 at 03:24:02PM +0100, Ruud H.G. van Tol wrote:
> 
> On 2025-01-29 14:42, Bill Allombert wrote:
> > On Wed, Jan 29, 2025 at 02:28:46PM +0100, Ruud H.G. van Tol wrote:
> 
> >> ? vecsum(2^[1,3])
> >> % 10.000000000000000000000000000000000000
> >
> > Use fromdigits:
> > ? fromdigits([1,3],2)
> > % = 10
> 
> Doesn't work:
> 
> ? fromdigits([1,3],2)
> % = 5
> (because 1*2^1 + 3*2^0 = 2+3 = 5)
> 
> 
> The (distinct) digits are exponents, are not positional.
> 2^1 + 2^3 = 10.

Ah sorry!
> Example quest:
> 
> >> How to best convert something like (int) 6131786 to (int) 2^1 + 2^3 + 2^6
> +
> >> 2^7 + 2^8?
> >
> > You can use the binary() function.
> 
> I don't see yet how.

? select(i->i,binary(6131786),1)
%3 = Vecsmall([1,3,4,5,7,8,11,17,20,22])

Cheers,
Bill.