이론 v0.91 오타 문의
10. 프로그래밍 언어 활용 에서
3.java 관계연산자/비트연산자의 문제풀이 보시면 F | T 할때 F 를 0000 T를 1111로 표현하던데 true는 0001 아닌가요? F|T -> 0000 | 1111 -> 1111 -> T 라고 되어잇고 XOR 연산자에도 T를 1111 로 표기해서 묻습니다.
답변 2
0
안녕하세요.
학습자료를 보니 오해하게 되어있네요. 전체가 false인지 true인지만 판단해야하는데 잘못된 비트로 표현되어 있습니다. 좀 더 구체적으로 적어서 다음 버전 PDF에 반영하겠습니다.
재차 설명을 드리자면,
public class Main {
public static void main(String[] args) {
int w=3, x=4, y=3, z=5;
if((w == 2 | w == y & !(y > z)&(1 == x^y != z)))
{
w = x + y;
if(7 == x^y!= w) {
System.out.println(w);
} else {
System.out.println(x);
}
} else {
w = y + z;
if(7 == y^z != w){
System.out.println(w);
} else {
System.out.println(z);
}
}
}
}
첫 번째 조건문에서는 w == 2는 false, w==y는 true, !(y>z)는 true가 됩니다.
(1 == x^y != z)는 (1 == x) ^ (y != z)로 풀어서 해석하시면 됩니다.
각각 false ^ true가 되며 ^는 XOR이므로 둘이 다르면 true가 됩니다.
바깥의 if문은
(w == y) & (!(y > z)) & ((1 == x) ^ (y != z))
= true & true & true
= true이렇게 되고 전체는
(w == 2 | true)
= false | true
= true이렇게 됩니다.
그래서 변수 w는 4+3으로 7이 할당됩니다.
두 번째는 같은 원리로 if ( (7 == x) ^ (y != w) )가 false ^ true = true가 되고
안쪽 if문이 참이기 때문에 println(w)가 되고 앞에서 할당된 7이 출력됩니다.
|는 boolean에 쓰는 경우 논리OR가 되고 정수에 되면 비트OR가 됩니다.
int a = 5; // 0101
int b = 3; // 0011
System.out.println(a | b); // 7이렇게 생각하시면 됩니다.
0
안녕하세요, 인프런 AI 인턴입니다. 최민영님.
비트 연산자와 관련된 질문에 대해 답변드리겠습니다. 논리 연산자와 비트 연산자는 다르게 작용합니다. 비트 연산자에서는 각 비트의 값을 보게 되는데, 파이썬이나 C와 같은 언어에서 일반적으로 True는 1로, False는 0으로 표현됩니다. 하지만 문제에서 설명한 것처럼 T와 F를 각각 1111과 0000로 사용하는 것은 설명의 간소화를 돕기 위해 모든 비트를 1 또는 0으로 표시한 예시일 수 있습니다.
비트 연산에서 OR(|) 연산자는 두 비트 중 하나라도 1이면 결과가 1이 됩니다. 따라서 F | T가 0000 | 1111으로 해석되는 경우 결과는 1111이 되어 True가 맞습니다. 이와 같은 표시 방법은 일반적인 비트 마스크와 유사한 컨셉으로, 실제 연산의 논리 구조 설명을 돕기 위한 것입니다.
이와 관련한 추가적인 설명이나 예시를 제공하고 있는 기존 질문을 참고하시면 도움이 될 것입니다:
- 쉬프트연산 - 비트 연산자 사용법에 대한 게시물로, 비트 연산에 대한 전반적인 이해를 높일 수 있는 자료입니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
필기자료 사라졌나요?(실기 일주일만에 안돼서 재도전-_-)
0
37
2
26년 1회 실기 해설 강의
0
51
2
53번 4-1 자료 오류 있는 것 같습니다.
0
68
2
7번문제
0
57
2
C언어 변형문제 9번문제 Pdf 수정요청
0
45
2
메서드 오버드라드
0
45
2
실수
0
45
1
공부 우선순위 우선강의 알려주세요
0
85
1
생성자 호출순서 강의 10번 문제 30분대 질문입니다
0
47
2
25년 2회 기출 5:40 질문입니다.
0
39
2
모의고사1회 3번 파이썬문제
0
73
2
C언어 출제변형 6번 문제
0
50
2
c언어 출제변형 강의 질문
0
31
2
28:40
0
33
2
C : 언어 배열과 문자열 수업자료
0
29
2
파이썬 리스트, 딕셔너리 질문
0
41
2
모의고사 관련 질문 건
1
68
3
자료 내용 오류
0
63
2
정적 변수, 정적 메서드(static) v2
0
47
2
v1.2 와 v0.91 PDF
0
101
1
업캐스팅 (부모형태, 자식생성자)
0
51
2
정보처리산업기사 준비중입니다.
0
74
2
실기 D -6
0
105
2
(기출) 2024년 2회 기출문제 - 이론 포함 22분32초 질문입니다
0
57
3





