43 lines
552 B
Plaintext
43 lines
552 B
Plaintext
function BinaryBits(sys n) as string
|
|
string buf=nuls 32
|
|
sys p=strptr buf
|
|
sys le
|
|
mov eax,n
|
|
mov edi,p
|
|
mov ecx,32
|
|
'
|
|
'STRIP LEADING ZEROS
|
|
(
|
|
dec ecx
|
|
jl fwd done
|
|
shl eax,1
|
|
jnc repeat
|
|
)
|
|
'PLACE DIGITS
|
|
'
|
|
mov byte [edi],49 '1'
|
|
inc edi
|
|
(
|
|
cmp ecx,0
|
|
jle exit
|
|
mov dl,48 '0'
|
|
shl eax,1
|
|
(
|
|
jnc exit
|
|
mov dl,49 '1'
|
|
)
|
|
mov [edi],dl
|
|
inc edi
|
|
dec ecx
|
|
repeat
|
|
)
|
|
done:
|
|
'
|
|
sub edi,p
|
|
mov le,edi
|
|
if le then return left buf,le
|
|
return "0"
|
|
end function
|
|
|
|
print BinaryBits 0xaa 'result 10101010
|