Bit-Wise Operators
The mathematical operators & and | are bit-wise operators. The operator, &, is a Logical And. The operator,
|, is a Logical Or. These operators allow for bit-wise operations on any valid RIO numeric operand,
including variables, array elements, numeric values, functions, keywords, and arithmetic expressions. The
bit-wise operators may also be used with strings. This is useful for separating characters from an input
string. When using the input command for string input, the input variable will hold up to 6 characters. These
characters are combined into a single value, which is represented as 32 bits of integer and 16 bits of fraction.
Each ASCII character is represented as one byte (8 bits), therefore the input variable can hold up to six
characters. The first character of the string will be placed in the top byte of the variable and the last character
will be placed in the lowest significant byte of the fraction. The characters can be individually separated, by
using bit-wise operations as illustrated in the following example:
Instruction
Interpretation
#TEST
Begin main program
IN "ENTER",LEN{S6}
Input character string of up to 6 characters into variable
‘LEN’
FLEN=@FRAC[LEN]
Define variable ‘FLEN’ as fractional part of variable
‘LEN’
FLEN=$10000*FLEN
Shift FLEN by 32 bits (IE - convert fraction, FLEN, to
integer)
LEN1=(FLEN&$00FF)
Mask top byte of FLEN and set this value to variable
‘LEN1’
LEN2=(FLEN&$FF00)/$100
Let variable, ‘LEN2’ = top byte of FLEN
LEN3=LEN&$000000FF
Let variable, ‘LEN3’ = bottom byte of LEN
LEN4=(LEN&$0000FF00)/$100
Let variable, ‘LEN4’ = second byte of LEN
LEN5=(LEN&$00FF0000)/$1000
0
Let variable, ‘LEN5’ = third byte of LEN
LEN6=(LEN&$FF000000)/$1000
000
Let variable, ‘LEN6’ = fourth byte of LEN
MG LEN6 {S4}
Display ‘LEN6’ as string message of up to 4 chars
MG LEN5 {S4}
Display ‘LEN5’ as string message of up to 4 chars
MG LEN4 {S4}
Display ‘LEN4’ as string message of up to 4 chars
MG LEN3 {S4}
Display ‘LEN3’ as string message of up to 4 chars
MG LEN2 {S4}
Display ‘LEN2’ as string message of up to 4 chars
MG LEN1 {S4}
Display ‘LEN1’ as string message of up to 4 chars
EN
This program will accept a string input of up to 6 characters, parse each character, and then display each
character. Notice also that the values used for masking are represented in hexadecimal (as denoted by the
preceding ‘$’). For more information, see the section on
Sending Messages
(page 69)
.
To illustrate further, if the user types in the string “TESTME” at the input prompt, the RIO will respond with
the following:
T
Response from command MG LEN6 {S4}
E
Response from command MG LEN5 {S4}
S
Response from command MG LEN4 {S4}
T
Response from command MG LEN3 {S4}
M
Response from command MG LEN2 {S4}
E
Response from command MG LEN1 {S4}
RIO-47xxx
Chapter 5 Programming
●
63
Содержание RIO-47**0
Страница 2: ......
Страница 93: ...RIO Dimensions RIO 471xx Units in centimeters RIO 47xxx Appendix 87...
Страница 94: ...RIO 472xx Units in millimeters 88 Appendix RIO 47xxx...
Страница 107: ...Internal 56 64 Zero Stack 53 RIO 47xxx Index 101...