BitAndString (String function): Difference between revisions
Jump to navigation
Jump to search
m (→Usage notes) |
|||
(2 intermediate revisions by one other user not shown) | |||
Line 31: | Line 31: | ||
<p class="code">%evenDigits = %digits:bitAndString('', pad='FE':x) | <p class="code">%evenDigits = %digits:bitAndString('', pad='FE':x) | ||
</p> | </p> | ||
In | In the above code, if <code>%digits</code> were <code>'31415926'</code>, <code>%evenDigits</code> would be set to <code class="output">'20404826'</code>. | ||
<li>The following example: | <li>The following example: | ||
Line 51: | Line 51: | ||
==See also== | ==See also== | ||
<table> | |||
<tr> | |||
<td> | |||
<ul> | <ul> | ||
<li><var>[[BitOffString (String function)|BitOffString]]</var> | <li><var>[[BitOffString (String function)|BitOffString]]</var> | ||
Line 57: | Line 60: | ||
<li><var>[[BitXorString (String function)|BitXorString]]</var> | <li><var>[[BitXorString (String function)|BitXorString]]</var> | ||
</ul> | </ul> | ||
</td> | |||
<td> | |||
<ul> | |||
<li><var>[[BitClearString, BitFlipString, and BitSetString (String functions)|BitClearString, BitFlipString, and BitSetString]]</var> | |||
<li><var>[[BitValueString (String function)|BitValueString]]</var> | |||
<li><var>[[BitCountString (String function)|BitCountString]]</var> | |||
</ul> | |||
</td> | |||
</table>[[Category:Bit manipulation methods]] | |||
{{Template:String:BitAndString footer}} | {{Template:String:BitAndString footer}} |
Latest revision as of 20:09, 3 September 2015
Do bitwise And of strings (String class)
[Introduced in Sirius Mods 7.9]
BitAndString does a logical AND of the bits in two strings.
Syntax
%result = string:BitAndString( andBits, [Pad= c])
Syntax terms
%result | A string to receive the result of ANDing together the bits in string and andBits. |
---|---|
string | One of the strings to be ANDed. |
andBits | The other string to be ANDed. |
Pad | This name required parameter is a single character that indicates the character with which the shorter of the two input strings is to be extended. As many copies of c are used as is required to make the shorter string as long as the longer. If both strings are of equal length, no padding is required. The default value of c is '00':x . |
Usage notes
- Using a null string for andBits is an easy way of ANDing each byte in a string with a specific byte value (the Pad value).
- BitAndString is most useful for working with binary data, for example binary data being sent or received with Janus Sockets.
Examples
- The following example turns off the low order bit of a numeric value's string representation, rounding every digit down to an even number (because EBCDIC binary digits map 0-9 to hex values X'F0'-X'F9'):
%evenDigits = %digits:bitAndString('', pad='FE':x)
In the above code, if
%digits
were'31415926'
,%evenDigits
would be set to'20404826'
. - The following example:
printText {~='Red':bitAndString('Green', pad='FF':x)}
outputs
'Red':bitAndString('Green', pad='FF':x)=Aaden
To see why this is correct, run the following:
printText {~='Red':stringToHex} printText {~='Green':stringToHex} printText {~='Red':bitAndString('Green', pad='FF':x):stringToHex}
This is the result:
'Red':stringToHex=D98584 'Green':stringToHex=C799858595 'Red':bitAndString('Green', pad='FF':x):stringToHex=C181848595