이것은 마지막 게시물의 업데이트이지만이 작동 방식을 이해하는 데 많은 어려움을 겪고 있습니다.비트 연산 및 "플래그"설정
void set_flag(int* flag_holder, int flag_position);
int check_flag(int flag_holder, int flag_position);
int main(int argc, char* argv[])
{
int flag_holder = 0;
int i;
set_flag(&flag_holder, 3);
set_flag(&flag_holder, 16);
set_flag(&flag_holder, 31);
for(i = 31; i >= 0; i--) {
printf("%d", check_flag(flag_holder, i));
if(i % 4 == 0)
printf(" ");
}
printf("\n");
return 0;
}
그리고 할당을 위해 우리가 출력이 같도록, 기능의 set_flag 및 check_flag 쓰기로되어있다 : 내가 이해에서 그래서
1000 0000 0000 0001 0000 0000 0000 1000
그래서 주요 기능을 제공했다 , "set_flag"함수를 사용하여 n 번째 비트가 1인지 확인했습니다. 그리고 "check_flag"함수는 n 번째 비트가 0 일 때 0, 1 일 때 1 인 정수를 반환합니다. "set_flag"가 실제로 무엇을하는지 이해하고 어떻게 3, 16, 31을 "플래그"로 저장하고 "check_flag"에 1을 반환하는지 이해합니다.
시도한 내용과 실패한 부분은 무엇입니까? [최소한의 완전하고 검증 가능한 예제를 만드는 방법] (http://stackoverflow.com/help/mcve)을 읽어보십시오. –