If you want to count the number of required bits, you could something as follows: declare function local:bits($n as xs:integer) as xs:integer { ($n idiv 2) ! (if (.) then 1 + local:bits(.) else 0) }; local:bits(65535) There are probably various solutions to solve the problem; suggestions are welcome. On Wed, Aug 14, 2019 at 1:07 PM Christian Grün <christian.gruen@gmail.com> wrote:
Hi Giuseppe,
Thanks! I missed that specification. Is there any reason why only the first octet is provided? More in general, I was interested to test how many bits/octects are used to represent an integer.
The function was mostly introduced to convert byte sequences to a binary representation and vice versa. The xs:integer data type because it’s the predominant numeric type in XQuery (otherwise, the input would have needed to be cast to xs:byte).
On Aug 14, 2019, at 10:58 AM, Christian Grün <christian.gruen@gmail.com> wrote:
bin:length(convert:integers-to-base64(1 to 10000000)