|
|
NM and CM callable.
Converts a 32-bit binary number to a specified base and represents it as a
numeric ASCII string.
Syntax
I16 I32V I16V CA
numchar := DASCII (binvalue, base, asciieqv);
Functional Return
- numchar
16-bit signed integer (assigned functional return)
Returns the number of characters in the resulting string.
Parameters
- binvalue
32-bit signed integer by value (required)
Contains the binary number to be converted to an ASCII string.
- base
16-bit signed integer by value (required)
Contains one of the following translation identifiers:
If any other number is entered in this parameter, the intrinsic
causes the process to abort.
Value | Meaning |
8 | Convert to octal (pad with zeros) |
10 | Convert to decimal (left-justified) |
-10 | Convert to decimal (right-justified) |
16 | Convert to hexadecimal (pad with zeros) |
- asciieqv
character array (required)
Returns the converted value. Must be long enough to contain the result
(<= 11 characters).
For octal conversions (base=8), 11 characters
(including leading zeros) are returned; numchar
returns the number of significant (right-justified) characters
(excluding leading zeros). If binvalue=0, the
length returned is 1.
For decimal conversions (base=10),
binvalue is considered a 32-bit twos complement
integer ranging from -2,147,483,648 to +2,147,483,647. If
binvalue=0, only one zero character is returned in
asciieqv; numchar returns the total
number of characters (including the sign). For example, if
binvalue=0, the length returned is 1.
For decimal right-justified conversions
(base=-10), the result is right-justified in
asciieqv; the least significant digit is in
asciieqv(-1), the next least significant digit is
in asciieqv(-2), and so on.
For right-justified conversions, the character array where the
converted value is to be placed must specify the rightmost byte
where data is placed. For example, if asciieqv is a
10 byte array declared as:
VAR MYSTRING : ARRAY [1..10] OF CHAR;
then you must specify it in the ASCII intrinsic call as
follows (for right justification):
NUMCHAR := ASCII (VALUE, -10&, WADDRESS(MYSTRING[10]));
The result is right-justified in asciieqv, with the
rightmost digit of the result contained in the last (rightmost)
byte of asciieqv.
For hexadecimal conversions (base=16), 8
characters (including leading zeros) are returned. The digits can
be 0..9 and A..F. Numchar returns the number of
significant (right-justified) characters (excluding leading zeros).
For example, if binvalue=32,
numchar is 2 and asciieqv will be
00000020.
Related Information
|