내가 좋아하는 일부 코드를 찾고 있었어요 : 경로에 따라 호출 할 발신자정수 사이의 비트 AND 연산자 사용의 이점은 무엇입니까?
public int someMethod(String path, int maxCallers) {
int hash = path.hashCode();
int caller = (hash & Integer.MAX_VALUE) % maxCallers;
return caller;
}
이 방법을 반환합니다. maxCallers
값이 4이면 호출자 값은 0-3 사이 여야합니다. 이제 여기서 나는 hash & Integer.MAX_VALUE
을 사용하는 것을 이해하지 못합니다. 내가 생각할 수있는 한 가지 이유는 해시 코드가 음수 일 수 있기 때문에 프로그래머가 양수를 원하지만 내 이해가 잘못되었다고 생각합니다. 누군가가 비트 AND 연산자의 사용법을 여기서 설명 할 수 있습니까?
을 귀하의 이해가 실제로 옳습니다. 그건 사인 비트를 떨어 뜨리는 가장 빠른 방법입니다. – dasblinkenlight
나는 감사합니다. @dasblinkenlight – user3396729