CL Programming

Using the %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:

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

or

%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 variable may also be used for the starting position.)

You can use the binary built-in function with both the IF and 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 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 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:


[ Top of Page | Previous Page | Next Page | Table of Contents | Index ]