bitwisenot: Difference between revisions

From RPTools Wiki
Jump to navigation Jump to search
m (Conversion script moved page Bitwisenot to bitwisenot: Converting page titles to lowercase)
m (Text replacement - "<source" to "<syntaxhighlight")
Line 26: Line 26:


|usage=
|usage=
<source lang="mtmacro" line>
<syntaxhighlight lang="mtmacro" line>
[h: val = bnot(num)]
[h: val = bnot(num)]
[h: val = bitwisenot(num)]
[h: val = bitwisenot(num)]
Line 32: Line 32:


|examples=
|examples=
<source lang="mtmacro" line>
<syntaxhighlight lang="mtmacro" line>
[bnot(1)]
[bnot(1)]
</source>
</source>
Returns 0.
Returns 0.


<source lang="mtmacro" line>
<syntaxhighlight lang="mtmacro" line>
[r: bnot(1)]
[r: bnot(1)]
</source>
</source>
Returns 0.
Returns 0.


<source lang="mtmacro" line>
<syntaxhighlight lang="mtmacro" line>
[r: bnot(12]
[r: bnot(12]
</source>
</source>

Revision as of 17:38, 14 March 2023

bitwisenot() Function

Performs a bitwise 'not' operation of the {number}. A bitwise not is performed by taking the binary representation of the {number} and performing a logical 'not' operation on each of these bits.

Logical "not" Table

Bit Result
0 1
1 0


Unfortunately its not quite as simple as the table above makes it appear since number are a string of 32 (or more bits) so a 1 in binary is actually a 00000000000000000000000000000001 and a 0 is actually a 00000000000000000000000000000000 so the table is now.

       bnot of binary 00000000000000000000000000000000
               is             11111111111111111111111111111111
       which is -1 in decimal
       bnot of binary 00000000000000000000000000000001 
       is             11111111111111111111111111111110
       which is -2 in decimal
If you are unsure why the results are negative then you can get more information by reading Twos_complement

Usage

<syntaxhighlight lang="mtmacro" line> [h: val = bnot(num)] [h: val = bitwisenot(num)] </source>

Examples

<syntaxhighlight lang="mtmacro" line>

[bnot(1)] </source> Returns 0.

<syntaxhighlight lang="mtmacro" line> [r: bnot(1)] </source> Returns 0.

<syntaxhighlight lang="mtmacro" line> [r: bnot(12] </source>

Returns -13.