멱집합 C프로그래밍 재귀함수 해석 질문이요ㅠㅜ
돋되다
2023.04.01
질문 제목 : 멱집합 c프로그래밍 질문이요질문 요약 :코드 해석하는데 if(num & (1i)) 이부분 해석을 도무지 못하겠습니다질문 내용 :
#include stdio.h
#include math.h
void powset(int a[] , int num , int n, int size);
int main(void)
{
int a[]={1,2,3,4};
int size = sizeof(a)/sizeof(int);
powset(a,0,1,size);
return 0;
}
void powset(int a[], int num, int n, int size)
{
int i;
printf({);
for(i=0 ; isize ; i++)
{
if(num & (1i))
printf(%d,a[i]);
}
printf(}\n);
if(n==pow(2,size))
{
return ;
}
else
{
powset(a,num+1,n+1,size);
}
}제가 짠것은 아니고 이코드 해석을 하고있는데
powset함수의
if(num & (1i))
이부분의 뜻이 정확히 무엇인지 도무지 모르겠습니다.
if로 들어가는 조건이 num과 1의 이진수에서 1의 위치를 i만큼 옮긴 교집합이 성립할때if문에 진입한다?전체적으로 주석 달아주시면 감사드리고
여기의 if문에대해 자세히좀 알려주시면 정말 감사드리겠습니다. 부탁드립니다