home *** CD-ROM | disk | FTP | other *** search
- /*
- * File......: DECTOBIN.PRG
- * Author....: Greg Lief
- * CIS ID....: 72460,1760
- * Date......: $Date: 15 Aug 1991 23:03:22 $
- * Revision..: $Revision: 1.2 $
- * Log file..: $Logfile: E:/nanfor/src/dectobin.prv $
- *
- * This function is an original work by Mr. Grump and is placed in the
- * public domain.
- *
- * Modification history:
- * ---------------------
- *
- * $Log: E:/nanfor/src/dectobin.prv $
- *
- * Rev 1.2 15 Aug 1991 23:03:22 GLENN
- * Forest Belt proofread/edited/cleaned up doc
- *
- * Rev 1.1 14 Jun 1991 19:51:30 GLENN
- * Minor edit to file header
- *
- * Rev 1.0 01 Apr 1991 01:01:06 GLENN
- * Nanforum Toolkit
- *
- */
-
- /* $DOC$
- * $FUNCNAME$
- * FT_DEC2BIN()
- * $CATEGORY$
- * Conversion
- * $ONELINER$
- * Convert decimal to binary
- * $SYNTAX$
- * FT_DEC2BIN( <nNum> ) -> cBinaryNumber
- * $ARGUMENTS$
- * <nNum> is the numeric expression to be converted.
- * $RETURNS$
- * A character string representing <nNum> in binary format.
- * $DESCRIPTION$
- * This function can be used in conjunction with any bit-wise
- * operations.
- * $EXAMPLES$
- * QOut( FT_DEC2BIN(255) ) // "11111111"
- * QOut( FT_DEC2BIN(2) ) // "00000010"
- * $END$
- */
-
- #ifdef FT_TEST
-
- FUNCTION MAIN
- LOCAL X
- FOR X = 1 TO 255
- QOUT( FT_DEC2BIN( x ))
- next
- return nil
-
- #endif
-
- function FT_DEC2BIN(x)
- local i, buffer := { '0', '0', '0', '0', '0', '0', '0', '0' }
- for i = 8 to 1 step -1
- if x >= 2 ^ (i - 1)
- x -= 2 ^ (i - 1)
- buffer[9 - i] = '1'
- endif
- next
- return ( buffer[1] + buffer[2] + buffer[3] + buffer[4] + ;
- buffer[5] + buffer[6] + buffer[7] + buffer[8] )
-
- * end of file: dectobin.prg