std::bitset<N>::operator<<,<<=,>>,>>=
cppreference.net에서
bitset operator<<( std::size_t pos ) const;
|
(1) | (C++11부터 noexcept) (C++23부터 constexpr) |
bitset& operator<<=( std::size_t pos );
|
(2) | (C++11부터 noexcept) (C++23부터 constexpr) |
bitset operator>>( std::size_t pos ) const;
|
(3) | (C++11부터 noexcept) (C++23부터 constexpr) |
bitset& operator>>=( std::size_t pos );
|
(4) | (C++11부터 noexcept) (C++23부터 constexpr) |
이진 왼쪽 시프트 (더 높은 인덱스 위치 방향) 및 이진 오른쪽 시프트 (더 낮은 인덱스 위치 방향)를 수행합니다. 0이 밀려 들어오고, 범위를 벗어나는 인덱스로 이동하는 비트는 버려집니다 (무시됨).
1,2) 이진 왼쪽 시프트를 수행합니다. (2) 버전은 파괴적입니다. 즉, 현재 객체에 대해 시프트를 수행합니다.
3,4) 이진 오른쪽 시프트를 수행합니다. (4) 버전은 파괴적입니다. 즉, 현재 객체에 대해 시프트를 수행합니다.
매개변수
| pos | - | 비트를 이동할 위치 수 |
반환값
1,3)
시프트된 비트를 포함하는 새로운 bitset 객체입니다.
2,4)
*
this
예제
이 코드 실행
#include <bitset> #include <iostream> int main() { std::bitset<8> b{0b01110010}; std::cout << b << " (initial value)\n"; for (; b.any(); b >>= 1) { while (!b.test(0)) b >>= 1; std::cout << b << '\n'; } std::cout << b << " (final value)\n"; }
출력:
01110010 (initial value) 00111001 00000111 00000011 00000001 00000000 (final value)
참고 항목
(C++20) |
비트 왼쪽 회전의 결과를 계산합니다 (함수 템플릿) |
(C++20) |
비트 오른쪽 회전의 결과를 계산합니다 (함수 템플릿) |
(C++29) |
정수형의 비트를 반전시킵니다 (함수 템플릿) |
| 비트 AND, OR, XOR 및 NOT 연산을 수행합니다 (공용 멤버 함수) |