10
비트 시프트 연산자로 작업 할 때 흥미로운 시나리오가 나타났습니다. 두 번째 피연산자가 음수이면 비트 시프트 연산은 어떻게 작동합니까? .음수로 시프트하는 비트 시프트 연산자
즉, < <b이고, "< <"은 비트 패턴을 a의 b 비트만큼 왼쪽으로 시프트합니다. 그러나 b가 깔끔하지 않다면 런타임에 오류가 발생하지 않아야합니까?
아래 코드를 성공적으로 실행할 수는 있지만 어떻게 작동하는지 이해할 수 없습니까? 입력
bitwiseleftShift('A');// ASCII 65
bitwiseleftShift('0'); // ASCII 48
public static void bitwiseleftShift(char testChar)
{
int val=testChar-'a';
int result= 1<<val;
System.out.println("bit wise shift of 1 with val="+val+" is "+result);
}
'는'누군가가 나이 어떻게 작동하는지 이해하는 데 도움이 수 97 인에 대한
bit wise shift of 1 with val=-32 is 1
bit wise shift of 1 with val=-49 is 32768
ASCII 결과?
감사합니다. 존! 그게 대답이야 .. SO는 내가 6 분이 넘을 때까지 대답을 받아 들일 수 없다고 말한다 : (그런데, 큰 팬! 다행스럽게 대답했다! – prashantsunkari