문제

비트 시프트를 원한다고 가정 해 봅시다 i 두 번 왼쪽으로 값을 저장하십시오 f.

f = i << 2;

그 맞습니까? C/C ++에서 정확히 어떻게해야합니까?

도움이 되었습니까?

해결책

예.

f = i << 2

교대는 다수의 비트 트위 링 작업에 유용합니다.

이것은 숫자에 4를 곱할 수있는 좋은 방법이었습니다. 그러나 요즘에는 컴파일러를 최적화하는 것이이를 처리하는 경향이 있습니다.

가장 왼쪽 가장 남은 비트는 버려집니다.

다른 팁

추가 참고로 : 질문이 태그가 지정되어 있어도 C++, C와 C ++는 음수 값을 이동하는 것과 관련하여 약간 다른 경로를 취했음을 주목할 가치가 있습니다. C ++에서 결과 << 또는 >> 음수 값은 구현 정의됩니다. c >> 구현 정의입니다 << 생산합니다 정의되지 않은 행동.

예, i << 2, f = i << 2, 또는 f <<= 2 비트를 바꾸기 위해하고 싶은 모든 것입니다.

명심하기 위해 더 많은 교대 :

  • 당신은 가지고 있습니다 >> 또한. 비트 레벨에서 >> 서명 및 서명되지 않은 유형과 다르게 작동합니다.

  • 우선 순위 << 그리고 >> 그보다 낮습니다 + 그리고 -, 어떤 사람들을 속이고, 더 좋아한다고 상상할 수 있듯이 * 그리고 /.

BIT 작업에 도움이되는 완전성을 위해이 페이지를 확인할 수 있습니다. UOW 교과서 -> bitops.html

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top