Standard library header <bit> (C++20)
From de.cppreference.net
Dieser Header ist Teil der numeric Bibliothek.
Typen |
|
|
(C++20)
|
gibt die Bytereihenfolge skalarer Typen an
(enum) |
Funktionen | |
(C++20) |
interpretiert die Objektdarstellung eines Typs als die eines anderen (Funktionstemplate) |
(C++23) |
kehrt die Bytes im gegebenen Ganzzahlwert um (Funktionstemplate) |
(C++20) |
prüft, ob eine Zahl eine ganzzahlige Zweierpotenz von 2 ist |
bit_ceil |
(C++20)findet die kleinste ganzzahlige Zweierpotenz von 2 , die nicht kleiner als der gegebene Wert ist |
bit_floor |
(C++20)findet die größte ganzzahlige Zweierpotenz von 2 , die nicht größer als der gegebene Wert ist |
bit_width |
(C++20) findet die kleinste Anzahl von Bits, die benötigt wird, um den gegebenen Wert darzustellen |
| (C++29) verschiebt nach links ohne die Möglichkeit undefinierten Verhaltens | |
| (C++29) verschiebt nach rechts ohne die Möglichkeit undefinierten Verhaltens | |
| (C++20) berechnet das Ergebnis einer bitweisen Linksrotation | |
| (C++20) berechnet das Ergebnis einer bitweisen Rechtsrotation | |
countl_zero |
(C++20)0zählt die Anzahl aufeinanderfolgender 0 Bits, beginnend beim höchstwertigen Bit |
countl_one |
(C++20)1zählt die Anzahl aufeinanderfolgender 1 Bits, beginnend beim höchstwertigen Bit |
countr_zero |
(C++20)0zählt die Anzahl aufeinanderfolgender 0 Bits, beginnend beim niederwertigsten Bit |
countr_one |
(C++20)1zählt die Anzahl aufeinanderfolgender 1 Bits, beginnend beim niederwertigsten Bit |
popcount |
(C++20)1zählt die Anzahl der 1 Bits in einer vorzeichenlosen Ganzzahl |
bit_reverse |
(C++29) kehrt die Bits in einer Ganzzahl um |
bit_repeat |
(C++29) wiederholt/überträgt ein Bitmuster angegebener Länge |
bit_compress |
(C++29)PEXTkomprimiert Bits eines Operanden mit einer Maske () |
bit_expand |
(C++29)PDEPexpandiert Bits aus einem Operanden mit einer Maske () |
Übersicht
namespace std {
// bit_cast
template<class To, class From>
constexpr To bit_cast(const From& from) noexcept;
// byteswap
template <class T>
constexpr T byteswap(T value) noexcept;
// integral powers of 2
template<class T>
constexpr bool has_single_bit(T x) noexcept;
template<class T>
constexpr T bit_ceil(T x);
template<class T>
constexpr T bit_floor(T x) noexcept;
template<class T>
constexpr int bit_width(T x) noexcept;
// shifting
template<class T, class S>
constexpr T shl(T x, S s) noexcept;
template<class T, class S>
constexpr T shr(T x, S s) noexcept;
// rotating
template<class T>
constexpr T rotl(T x, int s) noexcept;
template<class T>
constexpr T rotr(T x, int s) noexcept;
// counting
template<class T>
constexpr int countl_zero(T x) noexcept;
template<class T>
constexpr int countl_one(T x) noexcept;
template<class T>
constexpr int countr_zero(T x) noexcept;
template<class T>
constexpr int countr_one(T x) noexcept;
template<class T>
constexpr int popcount(T x) noexcept;
// permutation
template<class T>
constexpr T bit_reverse(T x) noexcept;
template<class T>
constexpr T bit_repeat(T x, int l);
template<class T>
constexpr T bit_compress(T x, T m) noexcept;
template<class T>
constexpr T bit_expand(T x, T m) noexcept;
// endian
enum class endian {
little = /* see description */,
big = /* see description */,
native = /* see description */
};
}