K,

For a finite, unsigned binary number, ignoring leading zeros, how many 
binary digits (the length in bits) are needed to represent a number?

Peter
On Sunday, August 29, 2021 at 4:07:41 PM UTC-4 kziem...@gmail.com wrote:

> Thank for explanation, but I don't understand "But how many bits do you 
> need to represent 0? The question is malformed as there are no set bits in 
> the used representation of 0.". Why this is malformed questions? When I 
> think of coding 1, I think about thaking one bit with 1 inside and when it 
> goes to 0, I would take one bit with 0 inside.
>
> K.
> piątek, 27 sierpnia 2021 o 07:14:45 UTC+2 Volker Dobler napisał(a):
>
>> On Thursday, 26 August 2021 at 22:17:55 UTC+2 kziem...@gmail.com wrote:
>>
>>> Another topic. I needed to check package "math/bits" (learning about Go 
>>> can lead us in such places quite fast) and I'm confused about function 
>>> "Len(x uint) int". In its description we have (
>>> https://pkg.go.dev/math/bi...@go1.17 
>>> <https://pkg.go.dev/math/bits@go1.17>)
>>> BEGINNING
>>> Len returns the minimum number of bits required to represent x; the 
>>> result is 0 for x == 0.
>>> END
>>> I have no problem with using function that says 0 can be encoded in 0 
>>> bits, but it is still odd. Maybe it is connected to something done under 
>>> the hood, about which I don't know a thing? Does anyone know why this 
>>> choose was made?
>>
>>  
>> No, the description doesn't say that 0 can be encoded in 0 bits:
>> It says that Len(0) returns 0.
>> If you want Len to be a total function you must return a value for every 
>> input.
>> For most inputs the value is strictly determined by what the functions 
>> does
>> (number of bits needed to represent), so Len(9) == 3. But how many bits
>> do you need to represent 0? The question is malformed as there are no 
>> set bits in the used representation of 0. One could have declared
>>     "Len(0) returns -42"
>> but this makes no sense at all. Having Len(0)==0 results in
>> Len(a) <= Len(b) if a < b without having to invent totally arbitrary
>> values for Len(0).
>>
>> You probably should not overinterpret Go's documentation.
>> This is not lyric. "the result is 0 for x == 0" has no hidden meaning.
>>
>> V.
>>
>

-- 
You received this message because you are subscribed to the Google Groups 
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to golang-nuts+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/golang-nuts/6515eb3f-4e79-4c9c-b881-e34c1b438177n%40googlegroups.com.

Reply via email to