Return Styles: Pseud0ch, Terminal, Valhalla, NES, Geocities, Blue Moon. Entire thread

[PROG CHALLENGE #024] Non-Corporate Edition

Name: Anonymous 2020-01-13 16:05

Write a function:

int solution(int N);

that, given a positive integer N, returns the length of its longest binary gap. The function should return 0 if N doesn't contain a binary gap.

For example, given N = 1041 the function should return 5, because N has binary representation 10000010001 and so its longest binary gap is of length 5. Given N = 32 the function should return 0, because N has binary representation '100000' and thus no binary gaps.

Name: Cudder !cXCudderUE 2020-01-14 3:26

; in: ecx
; out:eax
solution:
xor edx, edx
L1:
shr ecx, 1
jz _ret
jnc L1
xchg eax, ecx
L2:
bsf ecx, eax
cmp ecx, edx
cmova edx, ecx
inc ecx
shr eax, cl
jnz L2
_ret:
xchg eax, edx
ret


24 bytes. It's funny how all the HLL solutions posted above are larger both in source and binary form... so much for HLLs being efficient!

Newer Posts
Don't change these.
Name: Email:
Entire Thread Thread List