BitArray.Xor(BitArray) 메서드
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
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
매개 변수
- value
- BitArray
비트 배타적 OR 연산을 수행할 배열입니다.
반품
현재 BitArray 개체에 대한 참조인 비트 배타적 OR 연산의 결과를 포함하는 배열입니다.
예외
value은 null입니다.
value 현재 요소 BitArray 수가 같지 않습니다.
예제
다음 코드 예제에서는 두 BitArray 개체 간에 XOR 작업을 수행하는 방법을 보여줍니다.
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()
설명
비트 배타적 OR 연산은 정확히 하나의 피연산자인 true경우 반환 true 되고 두 피연산자 모두 동일한 부울 값을 갖는 경우 반환 false 됩니다.
이 메서드는 O(n) 작업입니다 nCount.