,C/C++에서 '그 외 모든 비트'를 부분 집합하는 가장 쉬운 방법은 무엇입니까?
unsigned char a = 0b11010010;
나는 다른 모든 비트에 대한 a
을 부분 집합, 즉 4 비트의 값을 만들기 위해 함께 넣어, 0
, 2
, 4
, 6
일 위치를 복용하고 0
로를 배치 할 , 1
, 2
, 3
rd 위치.
다음과 같이 하드 코딩 할 수 있습니다
unsigned char subset = (a & (1 << 0)) |
((a & (1 << 2)) >> 1) |
((a & (1 << 4)) >> 2) |
((a & (1 << 6)) >> 3);
내가이 일을 더 쉽게, 간단하거나 우아한 방법이 있는지 알고 싶습니다.
제 3 회? 너? 이상하게 보입니다 :-) – paxdiablo
아, 네 ... 고마워요. 고쳤다. – Jeon
음, 문제 없습니다. 그러나 나는 일종의 '바퀴의 재발 명'을하고 있는지 또는 다소 비효율적인지 (가독성이나 성능면에서) 여부를 알고 싶다. – Jeon