%BIN

Return a binary string representation of a numeric value

WTSupported in traditional Synergy on Windows
WNSupported in Synergy .NET on Windows
USupported on UNIX
VSupported on OpenVMS
string = %BIN(value[, magnitude])

Return value

string

The specified number as a string representation of binary characters, “0” or “1”. (a)

Arguments

value

The value to convert to a binary character string. (n)

magnitude

(optional) A value that determines the number of characters in the returned string: (n)

1 = 8-character string

2 = 16-character string

4 = 32-character string

8 = 64-character string

Discussion

%BIN converts a decimal data value to a 32-bit longword value.

If magnitude is not present or if it contains a value other than 1, 2, 4, or 8, the resulting string is 32 characters long (if value can be represented in 32 bits) or 64 characters (if value cannot be represented in 32 bits).

Examples

The following example takes binary data from a record, stores it as byte flags, and displays the results.

subroutine show_cflags
    a_bit_flags         ,n
record
    group flags         ,a
      unused_flg1       ,d1                     ;Represents bit 0
      unused_flg2       ,d1
      unused_flg3       ,d1
      unused_flg4       ,d1
      public            ,d1
      domestic          ,d1
      less50            ,d1
      vmail             ,d1                     ;Represents bit 7
    endgroup
proc
    flags = %bin(a_bit_flags, 1)
    if (public)
      writes(1, "Public company")
    if (domestic)
      writes(1, "Domestic sales")
    if (less50)
      writes(1, "Less than 50 employees")
    if (vmail)
      writes(1, "Voice mail system")
    xreturn
endsubroutine