home *** CD-ROM | disk | FTP | other *** search
/ Amiga MA Magazine 1997 #3 / amigamamagazinepolishissue03-1 / polski_aminet / michal_durys / binconv.e < prev    next >
Text File  |  1996-05-06  |  2KB  |  49 lines

  1. /*××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××*/
  2. -> NAME:   binConv
  3. -> AUTHOR: Michal Durys
  4. -> DATE:   1996.05.06
  5. /*××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××*/
  6.  
  7. OPT MODULE
  8.  
  9. EXPORT CONST ERR_NOMEM=-1
  10.  
  11. /*××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××*/
  12. -> PROC: PROC convLong2Bin(number)
  13. /*------------------------------------------------------------------------*/
  14. -> DESC: converts interger number to string containing binary number
  15. -> IN  : number=number to convert
  16. -> OUT : e-string containing binary number or error
  17. /*××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××*/
  18. EXPORT PROC convLong2Bin(number)
  19.   DEF binstr:PTR TO CHAR,bit
  20.   IF (binstr:=String(32))=NIL THEN RETURN ERR_NOMEM
  21.   MOVE.L number,D3
  22.   FOR bit:=31 TO 0 STEP -1
  23.     MOVE.L bit,D1
  24.     BTST D1,D3
  25.     BNE isOne
  26.     BEQ isZero
  27.     isZero:
  28.     StrAdd(binstr,'0',ALL)
  29.     BRA.B next
  30.     isOne:
  31.     StrAdd(binstr,'1',ALL)
  32.     next:
  33.   ENDFOR
  34. ENDPROC binstr
  35.  
  36. /*××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××*/
  37. -> PROC: PROC cutZeros(string)
  38. /*------------------------------------------------------------------------*/
  39. -> DESC: cuts superfluous zeros
  40. -> IN  : string=string containing binary number
  41. -> OUT : new string without superfluous zeros or error
  42. /*××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××*/
  43. EXPORT PROC cutZeros(string)
  44.   DEF foundAt,tmpstr:PTR TO CHAR
  45.   IF (tmpstr:=String(32))=NIL THEN RETURN ERR_NOMEM
  46.   IF (foundAt:=InStr(string,'1',0))=-1 THEN RETURN
  47.   RightStr(tmpstr,string,StrLen(string)-foundAt)
  48. ENDPROC tmpstr
  49.