2016-11-06 5 views
-3

나는 자바의 bitwise 및 bitshift 연산자가 일을 이해하지만을 수행하지만 실제로 사용하는 것이 무엇인지 이해하지 못합니다. 예를 들어 "~, < <, >> >> >>, &, ^, |"값을 수정하거나 비교하는 것이 유용한 경우는 언제입니까?Java의 Bitwise and Bitshift 연산자의 기능은 무엇입니까?

+0

누군가가 "곱셈에 실제적인 용도가 무엇인가"물으면 답을 생각해보십시오. 나는 "그저 가끔씩 필요로 할뿐"이외의 다른 말을 해야할지조차 모른다. 비트 연산과 동일합니다. – harold

답변

0

비트 필드 (플래그)

그들은 그 상태로 몇 가지 "또는 예 아니오"속성에 의해 정의되는 무언가를 표현하는 가장 효율적인 방법입니다. ACL이 좋은 예입니다. 쓰기, 실행, 변경 정책 등 4 가지 개별 권한을 사용한다면 낭비가 아닌 1 바이트로 저장하는 것이 더 좋습니다. 편의를 위해 여러 언어로 열거 유형에 매핑 할 수 있습니다. 포트/소켓 위에

통신

항상 있기 때문에, 수치 반대로 보통 개별 바이트의 논리 값에 의존 체크섬, 패리티 등, 정지 비트 제어 알고리즘 흐름 및를 포함 매체는 한번에 한 비트 씩만 전송할 수 있습니다.

압축, 암호화 이들의

모두 비트 알고리즘에 크게 의존한다. 예를 들어 수축 알고리즘을보십시오. 모든 것이 바이트가 아니라 바이트입니다. 그들도 소프트웨어에서 발견 될 수 있지만

유한 상태 기계

나는 주로 하드웨어의 일부 조각에 포함 된 종류의 말하는거야. 그들은 말 그대로 아래로 논리 게이트의 무리에 "컴파일"점점 될 수있다, 그래서 그들은

그래픽

가 거의 없다 등, NOT으로 표현 될 필요가 AND, OR -이 자연에서 조합입니다 그래픽 프로그래밍에서이 연산자가 사용되는 모든 영역에 들어가기에 충분한 공간이 필요합니다. 동일한 입력을 두 번 적용하면 첫 번째를 취소하기 때문에 XOR (또는 ^)은 특히 흥미 롭습니다. 오래된 GUI는 값 비싼 다시 그리기의 필요성을 없애기 위해 선택 강조 및 기타 오버레이에이 기능을 사용했습니다. 느린 그래픽 프로토콜 (예 : 원격 데스크톱)에서도 유용합니다.

이것들은 내가 처음 생각한 몇 가지 예일뿐입니다. 이것은 거의 완전한 목록이 아닙니다.