次の方法で共有


BitArray.Or メソッド

現在の BitArray 内の要素と、指定した BitArray 内の対応する要素に対して、ビットごとの OR 演算を実行します。

Public Function Or( _
   ByVal value As BitArray _) As BitArray
[C#]
public BitArray Or(BitArrayvalue);
[C++]
public: BitArray* Or(BitArray* value);
[JScript]
public function Or(
   value : BitArray) : BitArray;

パラメータ

  • value
    ビットごとの OR 演算の実行対象となる BitArray

戻り値

現在の BitArray 内の要素と、指定した BitArray 内の対応する要素に対するビットごとの OR 演算の結果を格納する BitArray

例外

例外の種類 条件
ArgumentNullException value が null 参照 (Visual Basic では Nothing) です。
ArgumentException value の要素数と現在の BitArray の要素数が異なります。

解説

ビットごとの OR 演算は、一方または両方のオペランドが true の場合は true 、両方のオペランドが false の場合は false を返します。

使用例

[Visual Basic, C#, C++] BitArray の 2 つのインスタンスに対して OR 演算を実行する方法の例を次に示します。

 
Imports System
Imports System.Collections
Imports Microsoft.VisualBasic

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 OR 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("OR:")
        PrintValues(myBA1.Or(myBA2), 8)
        Console.WriteLine()
        
        Console.WriteLine("After OR")
        Console.Write("myBA1:")
        PrintValues(myBA1, 8)
        Console.Write("myBA2:")
        PrintValues(myBA2, 8)
        Console.WriteLine()
        
        ' Performing OR 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.Or(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 myEnumerator As System.Collections.IEnumerator = _
           myList.GetEnumerator()
        Dim i As Integer = myWidth
        While myEnumerator.MoveNext()
            If i <= 0 Then
                i = myWidth
                Console.WriteLine()
            End If
            i -= 1
            Console.Write(ControlChars.Tab + "{0}", myEnumerator.Current)
        End While
        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
' OR:    False    True    True    True
' 
' After OR
' myBA1:    False    True    True    True
' myBA2:    False    True    False    True
' 
' Exception: System.ArgumentException: Array lengths must be the same.
'    at System.Collections.BitArray.Or(BitArray value) in <UnknownName>:line 0
'    at SamplesBitArray.Main() 

[C#] 
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 OR 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( "OR:" );
      PrintValues( myBA1.Or( myBA2 ), 8 );
      Console.WriteLine();

      Console.WriteLine( "After OR" );
      Console.Write( "myBA1:" );
      PrintValues( myBA1, 8 );
      Console.Write( "myBA2:" );
      PrintValues( myBA2, 8 );
      Console.WriteLine();

      // Performing OR 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.Or( myBA3 );
      } catch ( Exception myException )  {
         Console.WriteLine("Exception: " + myException.ToString());
      }
   }


   public static void PrintValues( IEnumerable myList, int myWidth )  {
      System.Collections.IEnumerator myEnumerator = myList.GetEnumerator();
      int i = myWidth;
      while ( myEnumerator.MoveNext() )  {
         if ( i <= 0 )  {
            i = myWidth;
            Console.WriteLine();
         }
         i--;
         Console.Write( "\t{0}", myEnumerator.Current );
      }
      Console.WriteLine();
   }
}
/* 
This code produces the following output.

Initial values
myBA1:    False    False    True    True
myBA2:    False    True    False    True

Result
OR:    False    True    True    True

After OR
myBA1:    False    True    True    True
myBA2:    False    True    False    True

Exception: System.ArgumentException: Array lengths must be the same.
   at System.Collections.BitArray.Or(BitArray value) in <UnknownName>:line 0
   at SamplesBitArray.Main()
*/ 

[C++] 
#using <mscorlib.dll>
#using <system.dll>

using namespace System;
using namespace System::Collections;

void PrintValues( IEnumerable* myList, int myWidth )  {
   System::Collections::IEnumerator* myEnumerator = myList->GetEnumerator();
   int i = myWidth;
   while ( myEnumerator->MoveNext() )  {
      if ( i <= 0 )  {
         i = myWidth;
         Console::WriteLine();
      }
      i--;
      Console::Write( S"\t{0}", myEnumerator->Current );
   }
   Console::WriteLine();
}

int main()  {
   // Creates and initializes two BitArrays of the same size.
   const int ArraySize = 4;
   BitArray* myBA1 = new BitArray( ArraySize );
   BitArray* myBA2 = new BitArray( ArraySize );

   for( int i(0); i < ArraySize; ++i ) {
      myBA1->Item[i] = (i % 2 == 0);
      myBA2->Item[i] = !myBA1->Item[i];
   }

   // Performs a bitwise OR operation between BitArray instances of the same size.
   Console::WriteLine( S"Initial values" );
   Console::Write( S"myBA1:" );
   PrintValues( myBA1, 8 );
   Console::Write( S"myBA2:" );
   PrintValues( myBA2, 8 );
   Console::WriteLine();

   Console::WriteLine( S"Result" );
   Console::Write( S"OR:" );
   PrintValues( myBA1->Or( myBA2 ), 8 );
   Console::WriteLine();

   Console::WriteLine( S"After OR" );
   Console::Write( S"myBA1:" );
   PrintValues( myBA1, 8 );
   Console::Write( S"myBA2:" );
   PrintValues( myBA2, 8 );
   Console::WriteLine();

   // Performing OR between BitArray instances of different sizes returns an exception.
   try  {
      BitArray* myBA3 = new BitArray( 2*ArraySize );
      for( int i(0); i < 2*ArraySize; ++i ) {
         myBA3->Item[i] = (i % 4 != 0);
      }
      myBA1->Or( myBA3 );
   } catch ( Exception* myException )  {
      Console::WriteLine( String::Concat( S"Exception: ", myException->ToString() ));
   }
}

/*
This code produces the following output.

Initial values
myBA1:  True    False   True    False
myBA2:  False   True    False   True

Result
OR:     True    True    True    True

After OR
myBA1:  True    True    True    True
myBA2:  False   True    False   True

Exception: System.ArgumentException: Array lengths must be the same.
   at System.Collections.BitArray.Or(BitArray value)
   at main()
*/

[JScript] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン 言語のフィルタ をクリックします。

必要条件

プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ, .NET Compact Framework - Windows CE .NET

参照

BitArray クラス | BitArray メンバ | System.Collections 名前空間