인프런 커뮤니티 질문&답변
bit mask 부분
작성
·
239
0
비트 마스크 부분에서 코드 그대로 잘 따라했는데
선생님이 말씀해 주신대로 blue부분은 잘 나오는데 red, green은 잘 나오지 않네요
시프트를 하지 않아서인지 바꿔봤는데도 안되요 혹시 어떤 부분이 오류가 있는건지 알려주실 수 있을까요?
#include <iostream> #include<bitset> using namespace std; int main() { const unsigned char red_mask = 0xFF0000; const unsigned char green_mask = 0x00FF00; const unsigned char blue_mask = 0x0000FF; cout << bitset<32>(red_mask) << endl; cout << bitset<32>(green_mask) << endl; cout << bitset<32>(blue_mask) << endl; unsigned int pixel_color = 0xDAA520; //여기서 색상별 추출 cout << bitset<32>(pixel_color) << " " << endl; unsigned int red = pixel_color & red_mask; unsigned int green = pixel_color & green_mask>>8; unsigned char blue = pixel_color & blue_mask; //pixel_color에서 blue 추출 cout << "red " << bitset<8>(red) << " " << int(red) << endl; cout << "green " << bitset<8>(green) << " " << int(green) << endl; cout << "blue " << bitset<8>(blue) << " " << int(blue) << endl; return 0; }
퀴즈
연산자 우선순위 및 결합 법칙에 대한 설명으로 옳은 것은 무엇일까요?
덧셈과 뺄셈이 곱셈, 나눗셈보다 항상 먼저 계산됩니다.
동일한 우선순위의 연산자는 항상 오른쪽에서 왼쪽으로 계산됩니다.
괄호를 사용하면 연산자 우선순위를 무시하고 먼저 계산할 수 있습니다.
논리 AND 연산자는 논리 OR 연산자보다 우선순위가 낮습니다.





