최근 Java에서 시프트 연산자를 사용하여 >>
연산자가 C에서 >>
과 동일한 의미가 없음을 알게되었습니다. >>
은 첫 번째 비트를 동일한 값으로 유지하는 부호있는 시프트입니다. Java에서 C 시프트와 동일한 것은 >>>
연산자입니다. 왼쪽 시프트 연산자 (<<
)는 C와 동일하며 첫 번째 비트를 무시하고 시프트합니다. 내가 궁금Java에서 시프트 연산 구현
일들이 변경 왜
- 이다?
- 표기법이 일관되지 않은 이유 >> 및 < <은 부호가 있고 >>> 및 < < <은 부호가 없습니까?
- 부호있는 시프트 연산자가 있습니까?
Java에는 부호없는 유형이 필요하기 때문에 필요합니다. Btw는 이미 귀하가 제안한대로입니다 : >>는 서명되어 있고 >>>는 서명되어 있지 않습니다. << <<와 같은 일을하기 때문에 <<<가 없습니다. – harold
AFAIK'a >> b'는 서명 된 타입에 대해서도 C에서 부호있는 시프트입니다. http://en.wikipedia.org/wiki/Bitwise_operation#Shifts_in_C.2C_C.2B.2B.2C_C.23 –
C의 모든 시프트는 머신에 따라 다르지만 대부분 >> >> 부호가 없습니다. – nist