FUNCTION Int2Bin(num As Number) As String DO CASE CASE m.num = 0 RETURN "0" CASE m.num < 0 num = 0x100000000 + m.num ENDCASE LOCAL cResult, nIndex cResult = "" FOR nIndex=MIN(31, CEILING(LOG(m.num)/LOG(2))) TO 0 STEP -1 cResult = m.cResult + IIF(BITTEST(m.num, m.nIndex), "1", "0") NEXT RETURN cResult FUNCTION Bin2Int(cBinStr As String) As Number LOCAL nIndex, ch, nResult, nPower STORE 0 TO nResult, nPower FOR nIndex=LEN(cBinStr) TO 1 STEP -1 ch = SUBSTR(m.cBinStr, m.nIndex, 1) DO CASE CASE m.ch = '1' nResult = m.nResult + 2 ^ m.nPower CASE m.ch = '0' OTHERWISE LOOP ENDCASE nPower = m.nPower + 1 NEXT RETURN INT(m.nResult)