1
주어진 두 개의 정수; size
및 offset
, 다음 속성을 사용하여 비트 마스크를 생성하는 방법은 무엇입니까?비트 마스크 생성
MSD LSD
1111 1111 0000 1111
^^
size = 4 -| |
|
offset = 4 -|
편집; 이것은, 내가 STL 기반의 솔루션을 제공하기 위해거야 문제는 C++로 태그되어 있기 때문에
((1 << size) - 1) << offset;
'((1 << size) - 1) << offset'은 당신이 원하는 것을 보완하지 않습니까? 또한,'size = 32' 및'offset = 0' (32 비트 int라고 가정)을 사용하는 것은 정의되지 않은 동작이 될 것입니다. – Praetorian
그렇습니다. 그러나 실제로는 실제를 얻기 위해 보완하는 것입니다. 그리고 제 크기는 결코 완전한 것이 아니며, 거기에 static_assert가 있습니다 (현재 있습니다). – Skeen
@markgz : 내가 C++ 11이라는 질문을 표시 한 것은 관련성 때문이 아니라 오히려 C++ 11을 기꺼이 사용하고 있기 때문입니다. – Skeen