본문으로 바로가기

php & 비트연산자

category [ Web 관련 ]/php 2019. 7. 31. 11:48
// $food 라는 배열에 식재료를 정의
$food = array(
  1,    // 파
  2,    // 마늘
  4,    // 간장
  8,    // 고추장
  16,   // 김치
  32,   // 햄
  64,   // 설탕
  128,  // 후추
  256,  // 소금
  512,  // 고춧가루
  1024, // 청양고추
  2048, // 물엿
  4096, // 돼지고기
);
 
// 파(1) + 김치(16) + 소금(256) + 돼지고기(4096) = 4369
$cook = $food[0] + $food[4] + $food[8] + $food[12];
 
echo $cook;
(결과 : 4369)
 
// $cook 변수에 소금이 포함되어있는지 확인
if($cook & 256 또는 $food[8]) {
  echo 'true';
}else{
  echo 'false';
}
(결과 : true)
 
// $cook 변수에 고추장이 포함되어있는지 확인
if($cook & 8 또는 $food[3]) {
  echo 'true';
}else{
  echo 'false';
}
(결과 : false)

 

http://blog.freezner.com/archives/1287

 

[PHP] 비트연산자(&)를 이용한 플래그 값 비교 방법

비트 연산을 이용해 여러 상태 값을 처리하는 방법을 소개합니다. 비트 연산하면 떠오르는 패턴의 수열이 있습니다. 1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024 .. 와 같은 공비가 2인 등비수열.. 이제 이 값들을 식재료에 매칭시켜 예를 들어보겠습니다.   [crayon-5d41005d065ba736588763…

blog.freezner.com