std::bit_or en C++ con ejemplos

El bit_or es una función incorporada en C++ que se usa para realizar bitwise_or y devolver el resultado después de aplicar la operación bitwise_or en sus argumentos.

Archivo de cabecera:

#include <functional.h>

Clase de plantilla:

template <class T> struct bit_or;

Parámetros: Acepta un parámetro T que es el tipo de argumento a comparar por la llamada funcional.

Nota:

  1. Los objetos de esta clase se pueden usar en algoritmos estándar como transformar o acumular.
  2. Las funciones miembro (‘operador()’) devuelven el bitwise_or de sus argumentos.

Debemos incluir la biblioteca ‘funcional’ y ‘algoritmo’ para usar bit_or y transform() respectivamente.

A continuación se muestra la ilustración de bit_or en C++:

Problema 1:

// C++ program to show the
// functionality of bit_or
  
#include <algorithm> // to include transform
#include <functional> // to include bit_or
#include <iostream>
#include <iterator>
using namespace std;
  
int main()
{
    // declaring the values
    int xyz[] = { -7, 2, 5, 100, 1029 };
    int abc[] = { -4, 0, 5, 1, 1 };
    int n = 5;
    // defining results
    int results[n];
  
    // transform is used to apply
    // bitwise_or on the arguments
    transform(xyz, end(xyz), abc,
              results, bit_or<int>());
  
    // printing the resulting array
    cout << "Results:";
    for (const int& x : results)
        cout << ' ' << x;
  
    return 0;
}
Producción:

Results: -3 2 5 101 1029

Algunos puntos para recordar

  1. Bitwise_or de un número con cero resultados en el propio número.
  2. Bitwise_or de dos números iguales también es igual a ese número en sí
  3. Si el número es impar es bit_or con 1 resultará en el mismo número
  4. Si el número es par , es bit_or con 1 siempre resultará en «número + 1»

Problema 2:

// C++ program to show the
// functionality of bit_or
  
#include <algorithm>
#include <functional>
#include <iostream>
#include <iterator>
using namespace std;
  
int main()
{
    // declaring the values
    // in form of hexadecimals
    int xyz[] = { 0, 1100 };
    int abc[] = { 0xf, 0xf };
  
    // defining results
    int results[2];
  
    // transform is used to apply
    // bitwise_or on the arguments
    transform(xyz, end(xyz), abc,
              results, bit_or<int>());
  
    // printing the resulting array
    cout << "Results:";
    for (const int& x : results)
        cout << ' ' << x;
  
    return 0;
}
Producción:

Results: 15 1103

Referencia: https://en.cppreference.com/w/cpp/utility/funcional/bit_or

Publicación traducida automáticamente

Artículo escrito por karan0805 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *