비트 AND:
0&0=0; 1&0=0; 1&1=1;
비트 OR:
0|0=0; 1|0=1;
OR 기반의 비트별 XOR은 0:
0^0=0; 1^0=1; 1^1=0;
1입니다. 예를 들어 5이면 이진수로 변환한 숫자는 101입니다. 제가 직접 정의하고 왼쪽에서 오른쪽으로 셉니다.
첫번째 숫자가 1이면 특정 기능이 자동으로 전달된다는 의미입니다. 두 번째 자리는 0으로 자동 삭제가 꺼진 상태
세 번째 자리는 1로 자동 저장이 켜진 상태
2 세 번째 자리가 자동 저장 켜짐 여부를 판별하는 코드
1 | ( $userStatus & pow(2,3-1))!=0
|
로그인 후 복사
3.pow는 2의 2제곱을 이진수로 변환한 지수 표현식 함수는 0100이고, 0101과 0100의 비트별 AND는 0100이므로 십진수로 4이므로 0이 아니므로 true
4를 설정합니다. 특정 비트의 값을 1로 설정하려면 코드는
원래 값은 0001이므로 먼저 설정해야 합니다. 세 자리는 1,0001 | 0100은 0101
5로 설정됩니다. 특정 숫자를 0으로 하면 코드는
1 | $userStatus ^ pow(2,3-1) 0101 ^ 0100 为0001
|
로그인 후 복사
[추천 과정:
PHP 비디오 튜토리얼
]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | <a href= "https://www.php.cn/course/list/29.html" target= "_self" textvalue= "PHP视频教程" > function setStatus( $source , $flag , $value ){
if ( intval ( $value ) == 1 || strcasecmp ( $value , 'on') == 0) {
$value = 1;
} else {
$value = 0;
}
$status = pow(2, $flag - 1);
$oldStat = (( $source & $status ) != 0);
if ( $oldStat == $value ) {
return $source ;
}
if ( $value ) {
$source |= $status ;
} else {
$source ^= $status ;
}
return $source ;
}
var_dump(setStatus(1,3,'on'));
var_dump(setStatus(13,4,0));
</a>
|
위 내용은 [PHP] 비트 AND & 또는 XOR의 기본 사용 ^의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!