BitArray.Xor(BitArray) Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
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
Parameter
- value
- BitArray
Das Array, mit dem die bitweise exklusive OR-Operation ausgeführt werden soll.
Gibt zurück
Ein Array, das das Ergebnis der bitweisen exklusiven OR-Operation enthält. Hierbei handelt es sich um einen Verweis auf das aktuelle BitArray-Objekt.
Ausnahmen
value
ist null
.
value
und das aktuelle BitArray enthalten nicht die gleiche Anzahl von Elementen.
Beispiele
Das folgende Codebeispiel zeigt, wie der XOR-Vorgang zwischen zwei BitArray Objekten ausgeführt wird.
using namespace System;
using namespace System::Collections;
void PrintValues( IEnumerable^ myList, int myWidth );
int main()
{
// Creates and initializes two BitArrays of the same size.
BitArray^ myBA1 = gcnew BitArray( 4 );
BitArray^ myBA2 = gcnew BitArray( 4 );
myBA1[ 0 ] = false;
myBA1[ 1 ] = false;
myBA1[ 2 ] = true;
myBA1[ 3 ] = true;
myBA2[ 0 ] = false;
myBA2[ 1 ] = true;
myBA2[ 2 ] = false;
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 = gcnew 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 ( Exception^ myException )
{
Console::WriteLine( "Exception: {0}", myException );
}
}
void PrintValues( IEnumerable^ myList, int myWidth )
{
int i = myWidth;
IEnumerator^ myEnum = myList->GetEnumerator();
while ( myEnum->MoveNext() )
{
Object^ obj = safe_cast<Object^>(myEnum->Current);
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()
*/
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()
Hinweise
Der bitweise exklusive OR-Vorgang gibt zurück true
, wenn genau ein Operand ist true
, und gibt zurück false
, wenn beide Operanden den gleichen booleschen Wert haben.
Diese Methode ist ein O(n)
Vorgang, wobei n
.Count