댓글 리스트
-
작성자 홍재연 작성시간23.06.02 // 19 : 간단하게 해설하면 다음과 같다.
⋅for(b=0; x!=0; x>>1) → x값을 우측으로 1bit씩 시프트
↓x값을 우측으로 1bit씩 시프트시키면서 다음 조건문이 참이되면 b 값이 1증가
⋅if(x&01) b++;
↓
⋅연산자 &는 비트 and 연산
⋅조건 x&01이 참이 되기 위해서는 x에 1이 존재해야 한다.
↓
⋅x = 7을 4bit 2진수로 고치면 0111 → 1이 3개 존재하므로 조건 x&01은 3번 참이 됨, b = 3
⋅x = 10을 4bit 2진수로 고치면 1010 → 1이 2개 존재하므로 조건 x&01은 2번 참이 됨, b = 2
⋅x = 11을 4bit 2진수로 고치면 1011 → 1이 3개 존재하므로 조건 x&01은 3번 참이 됨, b = 3
⋅x = 13을 4bit 2진수로 고치면 1101 → 1이 3개 존재하므로 조건 x&01은 3번 참이 됨, b = 3
⋅x = 14를 4bit 2진수로 고치면 1110 → 1이 3개 존재하므로 조건 x&01은 3번 참이 됨, b = 3
⋅호출할 때 결과가 다른 하나는 f(10)이다.
⋅단지, 10을 2진수로 1010으로 1이 2개 존재하기 때문