BitArray.Xor(BitArray) Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
public:
System::Collections::BitArray ^ Xor(System::Collections::BitArray ^ value);
public System.Collections.BitArray Xor(System.Collections.BitArray value);
member this.Xor : System.Collections.BitArray -> System.Collections.BitArray
Public Function Xor (value As BitArray) As BitArray
Parametry
- value
- BitArray
Tablica, za pomocą której ma być wykonywana operacja or bitowa.
Zwraca
Tablica zawierająca wynik operacji OR wykluczającej się bitowo, która jest odwołaniem do bieżącego BitArray obiektu.
Wyjątki
Parametr value ma wartość null.
value a bieżąca BitArray nie ma tej samej liczby elementów.
Przykłady
Poniższy przykład kodu pokazuje, jak wykonać operację XOR między dwoma BitArray obiektami.
using System;
using System.Collections;
public class SamplesBitArray {
public static void Main() {
// Creates and initializes two BitArrays of the same size.
BitArray myBA1 = new BitArray( 4 );
BitArray myBA2 = new BitArray( 4 );
myBA1[0] = myBA1[1] = false;
myBA1[2] = myBA1[3] = true;
myBA2[0] = myBA2[2] = false;
myBA2[1] = myBA2[3] = true;
// Performs a bitwise XOR operation between BitArray instances of the same size.
Console.WriteLine( "Initial values" );
Console.Write( "myBA1:" );
PrintValues( myBA1, 8 );
Console.Write( "myBA2:" );
PrintValues( myBA2, 8 );
Console.WriteLine();
Console.WriteLine( "Result" );
Console.Write( "XOR:" );
PrintValues( myBA1.Xor( myBA2 ), 8 );
Console.WriteLine();
Console.WriteLine( "After XOR" );
Console.Write( "myBA1:" );
PrintValues( myBA1, 8 );
Console.Write( "myBA2:" );
PrintValues( myBA2, 8 );
Console.WriteLine();
// Performing XOR between BitArray instances of different sizes returns an exception.
try {
BitArray myBA3 = new BitArray( 8 );
myBA3[0] = myBA3[1] = myBA3[2] = myBA3[3] = false;
myBA3[4] = myBA3[5] = myBA3[6] = myBA3[7] = true;
myBA1.Xor( myBA3 );
} catch ( Exception myException ) {
Console.WriteLine("Exception: " + myException.ToString());
}
}
public static void PrintValues( IEnumerable myList, int myWidth ) {
int i = myWidth;
foreach ( Object obj in myList ) {
if ( i <= 0 ) {
i = myWidth;
Console.WriteLine();
}
i--;
Console.Write( "{0,8}", obj );
}
Console.WriteLine();
}
}
/*
This code produces the following output.
Initial values
myBA1: False False True True
myBA2: False True False True
Result
XOR: False True True False
After XOR
myBA1: False True True False
myBA2: False True False True
Exception: System.ArgumentException: Array lengths must be the same.
at System.Collections.BitArray.Xor(BitArray value)
at SamplesBitArray.Main()
*/
Imports System.Collections
Public Class SamplesBitArray
Public Shared Sub Main()
' Creates and initializes two BitArrays of the same size.
Dim myBA1 As New BitArray(4)
Dim myBA2 As New BitArray(4)
myBA1(0) = False
myBA1(1) = False
myBA1(2) = True
myBA1(3) = True
myBA2(0) = False
myBA2(2) = False
myBA2(1) = True
myBA2(3) = True
' Performs a bitwise XOR operation between BitArray instances of the same size.
Console.WriteLine("Initial values")
Console.Write("myBA1:")
PrintValues(myBA1, 8)
Console.Write("myBA2:")
PrintValues(myBA2, 8)
Console.WriteLine()
Console.WriteLine("Result")
Console.Write("XOR:")
PrintValues(myBA1.Xor(myBA2), 8)
Console.WriteLine()
Console.WriteLine("After XOR")
Console.Write("myBA1:")
PrintValues(myBA1, 8)
Console.Write("myBA2:")
PrintValues(myBA2, 8)
Console.WriteLine()
' Performing XOR between BitArray instances of different sizes returns an exception.
Try
Dim myBA3 As New BitArray(8)
myBA3(0) = False
myBA3(1) = False
myBA3(2) = False
myBA3(3) = False
myBA3(4) = True
myBA3(5) = True
myBA3(6) = True
myBA3(7) = True
myBA1.Xor(myBA3)
Catch myException As Exception
Console.WriteLine("Exception: " + myException.ToString())
End Try
End Sub
Public Shared Sub PrintValues(myList As IEnumerable, myWidth As Integer)
Dim i As Integer = myWidth
Dim obj As [Object]
For Each obj In myList
If i <= 0 Then
i = myWidth
Console.WriteLine()
End If
i -= 1
Console.Write("{0,8}", obj)
Next obj
Console.WriteLine()
End Sub
End Class
' This code produces the following output.
'
' Initial values
' myBA1: False False True True
' myBA2: False True False True
'
' Result
' XOR: False True True False
'
' After XOR
' myBA1: False True True False
' myBA2: False True False True
'
' Exception: System.ArgumentException: Array lengths must be the same.
' at System.Collections.BitArray.Xor(BitArray value)
' at SamplesBitArray.Main()
Uwagi
Bitowa operacja wyłączna OR zwraca true wartość , jeśli dokładnie jeden operand to true, i zwraca false wartość , jeśli oba operandy mają tę samą wartość logiczną.
Ta metoda jest operacją O(n) , gdzie n to Count.