bitset::flip() es un STL integrado en C++ que voltea los bits. Si no se pasa ningún parámetro en la función, entonces cambia todos los valores de bit convirtiendo ceros en unos y unos en ceros. Si se pasa una posición de parámetro, voltea el bit solo en la posición.
Sintaxis:
bitset_name.flip(int pos)
Parámetro: La función acepta un parámetro pos que no es obligatorio. Si se pasa un parámetro pos, cambia el bit solo en el índice pos (el índice pos se calcula comenzando desde la derecha). En caso de que no se pase ningún parámetro, invierte todos los valores de bit convirtiendo ceros en unos y unos en ceros.
Valor devuelto: la función cambia todos los valores de bit según el parámetro pasado o no y devuelve la nueva representación binaria del número.
Los siguientes programas ilustran la función bitset::flip().
Programa 1:
// CPP program to illustrate the // bitset::flip() function // when no parameter is passed #include <bits/stdc++.h> using namespace std; int main() { // Initialization of bitset bitset<4> b1(string("1100")); bitset<6> b2(string("010010")); // Printing the bitset after flipping the bits cout << b1 << " after applying flip() function returns "; cout << b1.flip() << endl; cout << b2 << " after applying flip() function returns "; cout << b2.flip(); return 0; }
0011 after applying flip() function returns 1100 101101 after applying flip() function returns 010010
Programa 2:
// CPP program to illustrate the // bitset::flip() function // when parameter is passed #include <bits/stdc++.h> using namespace std; int main() { // Initialization of bitset bitset<4> b1(string("1100")); bitset<7> b2(string("0100100")); // Printing the bitset after flipping the bits cout << b1 << " after applying flip(3) function returns "; cout << b1.flip(3) << endl; cout << b2 << " after applying flip(6) function returns "; cout << b2.flip(6); return 0; }
0100 after applying flip(3) function returns 1100 1100100 after applying flip(6) function returns 0100100