home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga MA Magazine 1997 #3
/
amigamamagazinepolishissue03-1
/
polski_aminet
/
michal_durys
/
binconv.e
< prev
next >
Wrap
Text File
|
1996-05-06
|
2KB
|
49 lines
/*××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××*/
-> NAME: binConv
-> AUTHOR: Michal Durys
-> DATE: 1996.05.06
/*××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××*/
OPT MODULE
EXPORT CONST ERR_NOMEM=-1
/*××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××*/
-> PROC: PROC convLong2Bin(number)
/*------------------------------------------------------------------------*/
-> DESC: converts interger number to string containing binary number
-> IN : number=number to convert
-> OUT : e-string containing binary number or error
/*××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××*/
EXPORT PROC convLong2Bin(number)
DEF binstr:PTR TO CHAR,bit
IF (binstr:=String(32))=NIL THEN RETURN ERR_NOMEM
MOVE.L number,D3
FOR bit:=31 TO 0 STEP -1
MOVE.L bit,D1
BTST D1,D3
BNE isOne
BEQ isZero
isZero:
StrAdd(binstr,'0',ALL)
BRA.B next
isOne:
StrAdd(binstr,'1',ALL)
next:
ENDFOR
ENDPROC binstr
/*××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××*/
-> PROC: PROC cutZeros(string)
/*------------------------------------------------------------------------*/
-> DESC: cuts superfluous zeros
-> IN : string=string containing binary number
-> OUT : new string without superfluous zeros or error
/*××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××*/
EXPORT PROC cutZeros(string)
DEF foundAt,tmpstr:PTR TO CHAR
IF (tmpstr:=String(32))=NIL THEN RETURN ERR_NOMEM
IF (foundAt:=InStr(string,'1',0))=-1 THEN RETURN
RightStr(tmpstr,string,StrLen(string)-foundAt)
ENDPROC tmpstr