I'm unaware of anything built in for binary numbers. I wrote the following routines a while ago.
Rick
*** ------------------------------------------------------------------ ***
***
*** bins2int(str) : Binary String to Integer
*** int2bins(int [,int]) : Integer to Binary String
*** (Optional output length)
***
*** hexs2int(str) : Hex String to Integer
*** int2hexs(int [,int]) : Integer to Hex String
*** (Optional output length)
***
*** EXAMPLES:
***
*** ? bins2int("10000001010100010101"

*** ? int2bins(529685,20)
***
*** ------------------------------------------------------------------ ***
FUNCTION bins2int
PARAMETERS zbin_str
***
*** Assumes string of binary 'bits' no more than 32 characters long ***
*** Returns positive integer or -1 if in ERROR ***
***
PRIVATE lnumbits, lbit, ret_val, ii
ret_val = 0
zbin_str = alltrim(zbin_str) && kill leading and trailing spaces
DO WHILE LEFT(zbin_str,1) = "0" AND LEN(zbin_str) > 1 && kill leading "0"s
zbin_str = substr(zbin_str,2)
ENDDO
lnumbits = len(zbin_str)
IF lnumbits > 32 && too many bits for an integer
ret_val = -1
ELSE
FOR ii = 1 to lnumbits
lbit = substr(zbin_str, ii, 1)
DO CASE
CASE lbit = '0'
ret_val = 2*ret_val
CASE lbit = '1'
ret_val = 2*ret_val+1
OTHERWISE && NOT A '0' or '1'
ret_val = -1
EXIT
ENDCASE
ENDFOR
ENDIF
RETURN int(ret_val)
*** ------------------------------------------------------------------ ***
FUNCTION int2bins
PARAMETERS zdecimal, znoutlen
***
*** Assumes a positive integer less than 2^32 ***
*** Returns string of bits (0's or 1's) or 'ERROR: <explanation>' ***
***
PRIVATE lval, ret_val
IF PARAMETERS() < 2 OR TYPE('znoutlen') != 'N'
znoutlen = 0
ENDIF
znoutlen = MAX(0, MIN(32, znoutlen))
lval = min(2^32-1,abs(int(zdecimal)))
DO CASE
CASE lval = zdecimal
ret_val = ''
CASE lval = int(zdecimal)
ret_val = "ERROR: Can't Handle Non-Integers"
lval = 0
CASE lval = (-zdecimal)
IF zdecimal < 2^znoutlen-1
ret_val = ''
lval = MOD(-lval, 2^znoutlen)
ELSE
ret_val = "ERROR: Can't Handle Negatives"
lval = 0
ENDIF
OTHERWISE
ret_val = "ERROR: Number greater than 2^32-1 (Too Large)"
lval = 0
ENDCASE
DO while lval > 0
ret_val = iif((lval % 2)=1,'1','0')+ret_val
lval = int(lval/2)
ENDDO
IF znoutlen > 0 AND LEN(ret_val) < znoutlen
ret_val = PADL(ret_val, znoutlen, '0')
ENDIF
RETURN ret_val
*** ------------------------------------------------------------------ ***