Condividi tramite


operator&

Ottiene E bit per bit tra gli elementi corrispondenti di due valarrays ugualmente ridimensionati o tra un valore valarray e specificato del tipo di elemento.

template<class Type>
   valarray<Type> operator&(
      const valarray<Type>& _Left,
      const valarray<Type>& _Right
   );
template<class Type>
   valarray<Type> operator&(
      const valarray<Type>& _Left,
      const Type& _Right
   );
template<class Type>
   valarray<Type> operator&(
      const Type& _Left,
      const valarray<Type>& _Right
   );

Parametri

  • _Left
    Il primo dei due valarrays dei rispettivi elementi sono di essere combinati con E bit per bit o un valore specificato del tipo di elemento sia bit per bit combinato con ogni elemento di un valarray.

  • _Right
    Il secondo dei due valarrays dei rispettivi elementi sono di essere combinati con E bit per bit o un valore specificato del tipo di elemento sia bit per bit combinato con ogni elemento di un valarray.

Valore restituito

Un valarray dei cui elementi sono la combinazione di un elemento dell'operazione di AND bit per bit _Left e _Right.

Note

Un'operazione bit per bit può essere utilizzata solo per modificare i bit in char e tipi di dati e varianti int e non in float, in double, in LONGdouble, in voidbool o in un altro, tipi di dati più complessi.

E Bit per bit ha la stessa tabella di flusso E logico ma viene applicato al tipo di dati a livello di singoli bit.operator&& viene applicato a un livello elemento, contante tutti i valori diversi da zero come true e il risultato è un valarray di valori boolean.EBit per bitoperator&, invece, può comportare un valarray di valori diversi da 0 o 1, come risultato di un'operazione bit per bit.

Esempio

// valarray_op_bitand.cpp
// compile with: /EHsc
#include <valarray>
#include <iostream>

int main( )
{
   using namespace std;
   int i;

   valarray<int> vaL ( 10 ), vaR ( 10 );
   valarray<int> vaBWA ( 10 );
   for ( i = 0 ; i < 10 ; i += 2 )
      vaL [ i ] =  0;
   for ( i = 1 ; i < 10 ; i += 2 )
      vaL [ i ] =  i+1;
   for ( i = 0 ; i < 10 ; i++ )
      vaR [ i ] =  i;
   
   cout << "The initial Left valarray is:  ( ";
      for ( i = 0 ; i < 10 ; i++ )
         cout << vaL [ i ] << " ";
   cout << ")." << endl;

   cout << "The initial Right valarray is: ( ";
      for ( i = 0 ; i < 10 ; i++ )
         cout << vaR [ i ] << " ";
   cout << ")." << endl;

   vaBWA = ( vaL & vaR );
   cout << "The element-by-element result of "
        << "the bitwise operator & is the\n valarray: ( ";
      for ( i = 0 ; i < 10 ; i++ )
         cout << vaBWA [ i ] << " ";
   cout << ")." << endl;
}
  
  
  

Requisiti

intestazione: <valarray>

Spazio dei nomi: deviazione standard