Difference between revisions of "Bit.bxor"

From ComputerCraft Wiki
Jump to: navigation, search
m (Changed nonexistent type int to type number.)
 
(4 intermediate revisions by 2 users not shown)
Line 1: Line 1:
 +
{{lowercase}}
 +
{{Function
 +
|name=bit.bxor
 +
|args={{Type|number}} m, {{Type|number}} n
 +
|api=bit
 +
|returns={{Type|number}} the value of <var>m</var> XOR <var>n</var>
 +
|addon=ComputerCraft
 +
|desc=Computes the bitwise exclusive OR of two numbers
 +
|examples=
 +
{{Example
 +
|desc=XOR the number 18 (10010) with the number 3 (00011), yielding 17 (10001)
 +
|code=print(bit.bxor(18, 3))
 +
|output=17
 +
}}
 +
}}
 +
 
== Explanation ==
 
== Explanation ==
All bit operations operate in Binary numeral system [http://en.wikipedia.org/wiki/Binary_numeral_system].
+
All bit operations operate in binary numeral system [http://en.wikipedia.org/wiki/Binary_numeral_system]. An exclusive OR operation between two bits yields a 1 if the bits are unequal and a 0 if they are equal. This function produces an output by computing the XOR of each bit of its two inputs independently. So, for the example above:
  
So if you understand the basics than XOR is an EXCLUSIVE OR and like an OR with exclusion give:
+
{| class="wikitable"
----
+
|-
01001011 (75)
+
! Bit index:
----
+
| 4
<i>XOR</i>
+
| 3
----
+
| 2
00011000 (24)
+
| 1
----
+
| 0
<i>=</i>
+
|-
----
+
! Input 1 (18):
01010011 (83)
+
| 1
----
+
| 0
 +
| 0
 +
| 1
 +
| 0
 +
|-
 +
! Input 2 (3):
 +
| 0
 +
| 0
 +
| 0
 +
| 1
 +
| 1
 +
|-
 +
! Calculation:
 +
| 1 ≠ 0
 +
| 0 = 0
 +
| 0 = 0
 +
| 1 = 1
 +
| 0 ≠ 1
 +
|-
 +
! Output (17):
 +
| 1
 +
| 0
 +
| 0
 +
| 0
 +
| 1
 +
|}
  
Bits are XOR`red sequentially.
+
[[Category:API_Functions]]

Latest revision as of 01:21, 12 July 2013


Grid Redstone.png  Function bit.bxor
Computes the bitwise exclusive OR of two numbers
Syntax bit.bxor(number m, number n)
Returns number the value of m XOR n
Part of ComputerCraft
API bit

Examples

Grid paper.png  Example
XOR the number 18 (10010) with the number 3 (00011), yielding 17 (10001)
Code
print(bit.bxor(18, 3))
Output 17


Explanation

All bit operations operate in binary numeral system [1]. An exclusive OR operation between two bits yields a 1 if the bits are unequal and a 0 if they are equal. This function produces an output by computing the XOR of each bit of its two inputs independently. So, for the example above:

Bit index: 4 3 2 1 0
Input 1 (18): 1 0 0 1 0
Input 2 (3): 0 0 0 1 1
Calculation: 1 ≠ 0 0 = 0 0 = 0 1 = 1 0 ≠ 1
Output (17): 1 0 0 0 1