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.