mistyped there, 13 -> 4.
I just found leading_zeros, not sure how efficient that is, but it might be 
good enough for now, I can use:
sizeof(x)*8 - leading_zeros(x)

On Tuesday, October 6, 2015 at 11:21:35 AM UTC-4, Scott Jones wrote:
>
> Sorry!  I should have been more specific.
> What I want is:
> 0 -> 0
> 1 -> 1
> 0x8 -> 4
> 0x1f -> 5
> 13 -> 5
>
> i.e. number of bits needed to represent the number.
> I want to pack 2 or 3 values into a unsigned int, (maybe a UInt16, up to a 
> UInt128), that I can then use for sorting purposes efficiently.
> (much more cache efficient, eliminates a bunch of pointer references, etc.)
>
> Any idea how? (normally, I'd just use the assembly instructions available 
> that do this, but I want to do this in pure Julia [it would be nice if the 
> Julia code
> could actually be smart enough to generate the correct native code ;-) )
>
> Thanks!
>
>
> On Tuesday, October 6, 2015 at 11:03:03 AM UTC-4, Steven G. Johnson wrote:
>>
>>
>>
>> On Tuesday, October 6, 2015 at 10:59:04 AM UTC-4, Scott Jones wrote:
>>>
>>> I couldn't find anything yet - is there a recommended / fastest way to 
>>> get the number of bits in a number (I really only need it for unsigned 
>>> values).
>>> Thanks
>>>
>>
>> sizeof(number)*8 if you want all the bits (though you'd need to define a 
>> separate method for BigInt), or count_ones(number) if you want the 1 bits. 
>>
>

Reply via email to