sourcecode

MariaDB Bitwise AND(&) 연산

copyscript 2022. 9. 16. 23:04
반응형

MariaDB Bitwise AND(&) 연산

제 프로젝트에서는 32비트와 64비트의 제품 소프트웨어 아키텍처가 다양한 제품에 대해 각각 21비트와 22비트로 테이블에 저장되어 있습니다.

우연히 SQL에서 아키텍처대해 'where' 절이 언급되었습니다.22

'architecture & 2 = 2';

및 아키텍처용 21

'architecture & 2 != 2';

위 문장의 중요성과 2 = 2가 이 SQL에서 수행하는 작업을 이해할 수 없습니다.

일반적으로.x & m = m마스크의 모든 비트가m값으로 설정되다x.

22의 이진 표현은 10110이고2 21의 이진 표현은 10101입니다2.신청시x & 2mask를 22로 설정하면 2가 반환됩니다. 오른쪽에서 두 번째 비트가 22로 설정되기 때문입니다.이런 이유로architecture & 2 = 2되지요true.

21에 동일한 테스트를 적용하면 오른쪽에서 두 번째 비트가 설정되지 않았기 때문에 0이 반환됩니다.architecture & 2 != 2되지요true.

architecture 필드에는 비트 합계가 저장됩니다.

가치가 있다면architecture = 22즉,architecture = 2+4+16

의 가치가architecture is 21즉,architecture = 1+4+16

비트 합계의 경우 값의 범위를 고려합니다: 1, 2, 4, 8, 16, 32, 64...

그래서 그 표현은

'architecture & 2 = 2';

는 숫자 2가 아키텍처 필드에 저장되어 있는지 여부를 확인하는 것입니다.

한다면architecture is 21결과는 0 입니다.그럼, 거짓이군요

한다면architecture = 22결과는 2입니다.그래, 맞는 말이야.

그건 중고입니다

AND 연산자

AND와 OR의 논리성을 확인할 수 있습니다.

where 2=2그것은 진실이라는 뜻이다.

1,2,4,8처럼 바이너리로 바꿀 수 있습니다.

언급URL : https://stackoverflow.com/questions/48542232/mariadb-bitwise-and-operation

반응형