https://gall.dcinside.com/mgallery/board/view/?id=factorio&no=33171
0eNrtmF1uozAQx+/iZ6gw4fuhUqV93gusIkTItLEEBhlTbRRxgL3Fnm1PsmPShpZiYtCq3Up9iWJi5uP3t8fjnMiuaKEWjEuSnAjLK96Q5MeJNOyBZ4V6Jo81kIQwCSWxCM9KNcoEk4cSJMvtvCp3jGeyEqSzCON7+EkS2llXbewhZ3sQ0wbcbmsR4JJJBueI+sEx5W25A4EeLnZK2LO2tKGAXAoMqK4KQC911eDLFVf+0aAdBje+RY74zXXcGx9dcWAPh13VCuUg2qqQR07ci5OmzIrCLrKyvmKa9qaRoxRVke7gkD0yzAxn5kzkLZMp/ra/vH7PRCPTN6QemZAtPhn89zPsO3I23shMKeaoQVlnoqeXkD+/fpPuPIMjDdareSJUfQjYv+TIcBRYl6DUEJl33QSFjSGF8HNS8M0oeIYU/M9JITSj4F8pAXPLgsaxBsdgayDSrEXSgLKRDmSwVFQ1IJc+KnL3/Ru+WLWybpeZ1tF8EAD8yt6iyNMirgb+RkM7WE47+Gja7kfQ9se0rbnFPf45mhVHtxXC5eL4Hy2O999vBU9DO1p/3tN481yIVwb8erlQZ6JWjtoJOtVOxHO9z3zldDXL5cmQ2Vp53X8xUXG7LjIJ8wfJ7boloqzURwys5TK9F1WZMo42SCJFCwsOJhqoVnBSJ+oOS2l6gmN2qql5i5QJvpRBar5emc0VZeKxMOOKPNpy1FBIulBI/0tIpBbqhfT+1RYb7lLPHMyrn6NtpO9ZIUFo7qxX0LVPzeHlzrpdckjEb0+1ybw3S/MO3iVvd23eY8G1iXtLE/ffJXFvdeLUMPHhjtRIgMLOD9DIeaWjSNuhTO1XUwkC00jClZGYboLQNBB/LZJJcbCq9QU5efE3l0Uecf30Pt2IemHshhvH91wn6rq/B4Z4Sw==
내가 AND신호 써서 대충 구현해본거임
AND신호는 입력값이 둘 다 1이어야만 1을 출력함
1 AND 1 = 1, 0 AND 1 = 0, 0 AND 0 = 0 이런식임
근데 이러면 2 이상의 수를 처리 못하니깐, 2 이상의 수는 각 비트마다 따로따로 AND 연산을 해줘야함
10 AND 8 = 1010(2) AND 1000(2) = 1000(2) 이런식임
이를 잘 활용하면 신호에서 원하는 비트만 걸러낼 수도 있음
111001010000 AND
000001000000 =
000001000000 이런식으로. 이거는 오른쪽에서 7번째 비트만 걸러낸 거임
지금 내가 만든 장치에서 송신기 쪽은
1번상자 on = A신호 1개
2번상자 on = A신호 2개
3번상자 on = A신호 4개
수신기 쪽은
A신호 AND 1 > 0 = 1번조명 on
A신호 AND 2 > 0 = 2번조명 on
A신호 AND 4 > 0 = 3번조명 on
이렇게 되어있음
문자열 한번 받아서 분석해봐
이게 맞긴함 1,2,4,8,16 점점 입력하다보면 헷갈리니까, 사이에 shift 연산하는 회로도 하나 넣고 하는거 뿐이지
홀릿ㅅㅅ 개감사 ㅡ질문자
플밍에서 "비트마스크"라는 테크닉임