%BINARY built-in function

The binary built-in function (%BINARY or %BIN) interprets the contents of a specified CL character variable as a signed binary integer.

The starting position begins at the position specified and continues for a length of 2 or 4 characters.

The syntax of the binary built-in function is shown in the following example:

%BINARY(character-variable-name starting-position length)

You can also code it like this example:

%BIN(character-variable-name starting-position length)

The starting position and length are optional. However, if the starting position and length are not specified, a starting position of 1 and length of the character variable that is specified are used. In that case, you must declare the length of the character variable as either 2 or 4.

If the starting position is specified, you must also specify a constant length of 2 or 4. The starting position must be a positive number equal to or greater than 1. If the sum of the starting position and the length is greater than the length of the character variable, an error occurs. (A CL decimal or integer variable may also be used for the starting position.)

You can use the binary built-in function with both the If (IF) and Change Variable (CHGVAR) commands. It can be used by itself or as part of an arithmetic or logical expression. You can also use the binary built-in function on any command parameter that is defined as numeric (TYPE of *DEC, *INT2, *INT4, *UINT2, or *UINT4) with EXPR(*YES).

When the binary built-in function is used with the condition (COND) parameter on the IF command or with the VALUE parameter on the Change Variable (CHGVAR) command, the contents of the character variable is interpreted as a binary-to-decimal conversion.

When the binary built-in function is used with the VAR parameter on the Change Variable (CHGVAR) command, the decimal value in the VALUE parameter is converted to a 2-byte or 4-byte signed binary integer and the result stored in the character variable at the starting position specified. Decimal fractions are truncated.

The system uses the binary built-in function on the RTNVAL parameter of the Call Bound Procedure (CALLPRC) command to indicate that the calling procedure expects the called procedure to return a signed binary integer.

A 2-byte character variable can hold signed binary integer values from -32 768 through 32 767. A 4-byte character variable can hold signed binary integer values from -2 147 483 648 through 2 147 483 647.

The following are examples of the binary built-in function:

Related tasks
Change the value of a variable
Related reference
Built-in functions for CL
Related information
CL command finder
If (IF) command
Change Variable (CHGVAR) command
Call Bound Procedure (CALLPRC) command
Send Program Message (SNDPGMMSG) command