반응형
Web Development · PHP
PHP 비트 AND 연산자 —
& (single ampersand)
두 비트가 모두 1일 때만 1 — 진리표가 그대로 코드
시작 오늘 분석할 코드
0과 1의 모든 조합 4개를 &(비트 AND)로 연결한 결과를 본다. 한 비트의 동작 그대로다.
<?php $data = 0 & 0; print $data."<BR>"; $data = 1 & 0; print $data."<BR>"; $data = 0 & 1; print $data."<BR>"; $data = 1 & 1; print $data."<BR>"; ?>
실제 출력 미리보기
0
0
0
1
0
0
1
용어 핵심 키워드
& (single)비트 AND — 두 비트 모두 1이면 1
&& (double)논리 AND — 두 표현식 모두 참이면 참
| (single)비트 OR — 어느 하나라도 1이면 1
^XOR — 둘이 다를 때만 1
~NOT — 0 ↔ 1 반전
<< >>왼쪽/오른쪽 시프트
1 & 의 진리표
| A | B | A & B | 의미 |
|---|---|---|---|
| 0 | 0 | 0 | 둘 다 0 |
| 1 | 0 | 0 | 한 쪽 0이면 0 |
| 0 | 1 | 0 | 한 쪽 0이면 0 |
| 1 | 1 | 1 | 둘 다 1일 때만 1 |
💡 한 줄 요약 — &는 "그리고(AND)" 의미. 두 비트 모두 1이어야 1이 된다.
2 & vs && — 매우 중요한 차이
비슷해 보이지만 완전히 다른 연산자다.
| 구분 | & (비트) | && (논리) |
|---|---|---|
| 대상 | 각 비트 자리 | 전체 값의 truthy/falsy |
| 5 ?? 3 | 5 & 3 = 1 (101 & 011 = 001) | 5 && 3 = true |
| true와 false | true & false = 0 | true && false = false |
| 주 용도 | 플래그/마스크 | 조건문 |
| 단축 평가 | 없음 — 양쪽 다 평가 | 있음 — 좌가 false면 우 평가 X |
⚠ 실무 조건문은 && —
if ($x & $y)는 거의 항상 의도와 다르다. 조건문에는 &&를 사용한다.3 본 코드의 의도
본 코드는 비트 연산의 진리표를 직접 확인하는 학습용이다. 0과 1만 다루기 때문에 &와 &&의 결과가 같아 보인다 — 실제로는 다른 연산자다.
반응형
4 비트 AND가 실제 쓰이는 곳
- 플래그 체크 — 권한 비트 중 특정 권한을 가졌는지
if ($perm & PERM_WRITE) { ... } - 마스킹 — IP 주소의 서브넷 부분만 추출
- 짝수 판단 —
$n & 1 == 0이면 짝수 - 하드웨어 제어 — 비트 단위로 디바이스 상태 읽기
5 다른 비트 연산자 5종
// 비트 OR — 어느 하나라도 1이면 1 1 | 0 = 1; 1 | 1 = 1; // XOR — 둘이 다르면 1 1 ^ 0 = 1; 1 ^ 1 = 0; // NOT — 비트 반전 (~5는 -6, 8비트면 ...11111010) ~5 = -6; // 왼쪽 시프트 — 2배씩 (5 → 10 → 20) 5 << 1 = 10; // 오른쪽 시프트 — 1/2씩 10 >> 1 = 5;
6 자주 하는 실수
- 조건문에 & 사용 → 의도치 않은 비트 연산
- &와 && 혼동 — "한 줄"인지 "두 줄"인지로 외우기
- 음수에 비트 연산 — 2의 보수 표현 때문에 결과 헷갈림
- 비트 연산 결과를 truthy/falsy로 사용 — 오해 소지
핵심 한 줄 요약
&비트 AND — 각 비트 자리
&&논리 AND — 조건문용
진리표둘 다 1일 때만 1
활용플래그/마스크/짝수 판단
조건문반드시 &&를 사용
Tags
#PHP #비트연산자 #AND #bitwise #논리AND #진리표 #마스크 #플래그 #짝수 #백엔드 #CSS #HTML #웹개발 #티스토리
▼ 티스토리 태그 입력란 복사용
PHP, 비트연산자, AND, bitwise, 논리AND, 진리표, 마스크, 플래그, 짝수, 백엔드, CSS, HTML, 웹개발, 티스토리
반응형
'php' 카테고리의 다른 글
| PHP 백틱 — 셸 명령 실행 완전 정리 (0) | 2026.06.26 |
|---|---|
| PHP 오류 제어 연산자 — @ 완전 정리 (0) | 2026.06.26 |
| PHP 참/거짓 — true, false, == 완전 정리 (0) | 2026.06.26 |
| PHP 삼항 연산자 — ?: 한 줄 if-else 완전 정리 (0) | 2026.06.26 |
| PHP 증감 연산자 — ++ -- 후위/전위 완전 정리 (0) | 2026.06.25 |
왕진 블로그

댓글