친구인 Eliud는 할머니 Tigist로부터 농장을 물려받았어요. 할머니는 발명가였고, 물건을 지나치게 복잡하게 만드는 경향이 있었어요. 닭장에는 디지털 디스플레이가 있는데, 이 디스플레이는 주울 수 있는 모든 달걀의 위치를 인코딩한 숫자를 보여줘요.
Eliud는 닭장 안에 실제로 달걀이 몇 개 있는지 보여주는 프로그램을 작성해 달라고 부탁해요.
위치 정보 인코딩은 다음과 같이 계산해요:
1, 빈자리면 0을 적어요. _ _ _ _ _ _ _
|E| |E|E| | |E|
_ _ _ _ _ _ _
|1|0|1|1|0|0|1|
89
4
_ _ _ _ _ _ _
| | | |E| | | |
_ _ _ _ _ _ _
|0|0|0|1|0|0|0|
8
1
숫자를 이진수로 나타냈을 때 1인 비트가 몇 개인지 세는 것이 이번 과제예요.
표준 라이브러리에서 제공하는 비트 개수 세기 기능에는 손대지 마세요! 대신 다른 기본 도구를 사용해서 직접 풀어보세요.
PHP에는 비트 연산자가 있어요.
예를 들어, "비트 AND" 연산자(&)를 사용하면 숫자의 특정 비트가 정의되어 있는지 확인할 수 있어요:
$number = 89; // 0b01011001
$mask16 = 16; // 0b00010000
$mask32 = 32; // 0b00100000
$isMask16 = ($number & $mask16) > 0; // 0b00010000 > 0 => TRUE
$isMask32 = ($number & $mask32) > 0; // 0b00000000 > 0 => FALSE
Exercism에 가입하고 PHP 트랙을 개념 11개연습 문제 122개, 그리고 실제 사람의 멘토링과 함께 배우고 익혀 보세요. 모두 무료예요.