책 내용 질문하기
java 2진수 계산문제 질문입니다!
도서
2018 시나공 정보처리기능사 실기
페이지
0
조회수
294
작성일
2019-06-26
작성자
탈퇴*원
첨부파일
public class Main {
public static void main(String[] args) {
int a = 2, b = 3, c = 4, d, e;
d = a & b & -b;
e = a | b & c;
System.out.printf("%d %d", d, e);
}
}
d의 결과가 0으로 나옵니다.
왜0으로 나오는지 전혀 모르겠네요ㅠㅠ
알려주시면 감사하겠습니다!
답변
2019-06-27 10:45:21
안녕하세요 길벗수험서 운영팀입니다.
간단합니다.
2 & 3 & -3 을 차례대로 수행해보면 됩니다.
비트 and의 결합규칙은 왼쪽부터 이므로 앞에서 부터 수행합니다.
2 & 3은
0010 (2)
0011 (3)
--------
0010 이 됩니다.
-3은 음수이므로 2의 보수화 시키면 1101이 됩니다.
위의 결과에서 1101을 and연산하면,
0010
1101
------
0000 이 됩니다.
때문에 답은 0이 됩니다.
행복한 하루되세요 :)
-
관리자2019-06-27 10:45:21
안녕하세요 길벗수험서 운영팀입니다.
간단합니다.
2 & 3 & -3 을 차례대로 수행해보면 됩니다.
비트 and의 결합규칙은 왼쪽부터 이므로 앞에서 부터 수행합니다.
2 & 3은
0010 (2)
0011 (3)
--------
0010 이 됩니다.
-3은 음수이므로 2의 보수화 시키면 1101이 됩니다.
위의 결과에서 1101을 and연산하면,
0010
1101
------
0000 이 됩니다.
때문에 답은 0이 됩니다.
행복한 하루되세요 :)