[Back to NUMBERS SWAG index] [Back to Main SWAG index] [Original]
{Convert a Decimal to a String - Maximum number of bits = 16}
Function Dec2Bin (D: Word; No_Bits: Byte): String;
Var A : Word;
L : Byte;
S : String;
Begin
S := '';
A := Trunc (Exp ((No_Bits-1)*Ln (2)));
For L := No_Bits downto 1 do
Begin
A := A div 2;
If (D AND A)=A then S := S+'1' else S := S+'0';
End;
Dec2Bin := S;
End;
(*------------------------------------------------------*)
Function BinStr(num:word;bits:byte):string; assembler;
ASM
PUSHF
LES DI, @Result
XOR CH, CH
MOV CL, bits
MOV ES:[DI], CL
JCXZ @@3
ADD DI, CX
MOV BX, num
STD
@@1: MOV AL, BL
AND AL, $01
OR AL, $30
STOSB
SHR BX, 1
LOOP @@1
@@3: POPF
End;
[Back to NUMBERS SWAG index] [Back to Main SWAG index] [Original]