«bit-manipulation» 태그된 질문

개별 비트 조작. 사용되는 연산자에는 비트 AND, OR, XOR, NOT, 왼쪽 시프트 및 오른쪽 시프트가 포함될 수 있습니다.

6
(x | y)-y 왜 단순히 x 또는`x | 0
나는 커널 코드를 읽고 있었고, 한 곳에서 if다음과 같은 문장 내에서 표현을 보았습니다. if (value == (SPINLOCK_SHARED | 1) - 1) { ............ } SPINLOCK_SHARED = 0x80000000미리 정의 된 상수는 어디에 있습니까 ? (SPINLOCK_SHARED | 1) - 1타입 변환 목적으로 왜 우리가 필요한지 궁금합니다 . 식의 결과는 80000000입니다. 0x80000000과 같습니다. …


4
C 컴파일러가 스위치를 최적화하는 이유와 다르게
최근에 이상한 문제가 발생했을 때 개인 프로젝트를 진행하고있었습니다. 매우 엄격한 루프에서는 0과 15 사이의 값을 가진 정수가 있습니다. 0, 1, 8 및 9의 경우 -1을 얻고 값 4, 5, 12 및 13의 경우 1을 가져와야합니다. 나는 godbolt를 사용하여 몇 가지 옵션을 확인했으며 컴파일러가 if 체인과 같은 방식으로 switch 문을 최적화 …
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.