문제가 너무 어렵네요....
2015년 기출까진는 3과목이 꽤 쉽고 반복되는 문제들만 보였는데
2016부터 계산하는 어려운문제들이 나와서 골치아픕니다.
해설봐도 이해가 안가요
아주 쉽게 자세한 설명좀 부탁드려요.....
안녕하세요. 길벗 수험서 운영팀입니다.
문의한 문제는 C언어 코드로 코드에 사용된 연산자의 사용법만 알고 있으면 어려지 않게 답을 찾을 수 있습니다.
&은 AND 연산자로 두 비트가 모두 1일 때만 1로 표시합니다.
|은 OR 연산자로 두 비트 중 한 비트라도 1이면 1을 표시합니다.
^은 XOR 연산자로, 두 비트가 모두 같으면 0, 서로 다르면 1을 표시합니다.
int a=3, b=6; - a = 3, b = 6입니다.
int c, d, e; - c, d, e는 정수입니다.
c=a & b; - c = a and b로, a, 즉 3을 2진수로 변환하면 0011이고, b, 즉 6을를 2진수로 변환하면 0110입니다.
(3 = 0*2^3 + 0*2^2 + 1*2^1 + 1*2^0, 6 = 0*2^3 + 1*2^2 + 1*2^1 + 0*2^0,^은 거듭제곱을 의미함)
and 연산은 두 비트가 모두 1일 때만 1을 반환하므로
0011
and 0110
0010 입니다. 2진수 0010을 10진수로 변환하면 2입니다. 그러므로 c는 2입니다.
d=a | b; - d = a or b로, or 연산을 두 비트 중 한 비트라도 1이면 1을 반환하므로
0011
or 0110
0111 입니다. 2진수 0111을 10진수로 변환하면 7입니다. 그러므로 d는 7입니다.
e=a ^ b; - e = a xor b로, xor 연산을 두 비트가 모두 같으면 0, 서로 다르면 1을 반환하므로
0011
or 0110
0101 입니다. 2진수 0101을 10진수로 변환하면 5입니다. 그러므로 d는 5입니다.
printf(“%d %d %d\n”, c, d, e); - c, d, e를 차례대로 표시하면 2 7 5입니다.
행복한 하루되세요.^^
-
*2017-02-22 09:24:54
안녕하세요. 길벗 수험서 운영팀입니다.
문의한 문제는 C언어 코드로 코드에 사용된 연산자의 사용법만 알고 있으면 어려지 않게 답을 찾을 수 있습니다.
&은 AND 연산자로 두 비트가 모두 1일 때만 1로 표시합니다.
|은 OR 연산자로 두 비트 중 한 비트라도 1이면 1을 표시합니다.
^은 XOR 연산자로, 두 비트가 모두 같으면 0, 서로 다르면 1을 표시합니다.
int a=3, b=6; - a = 3, b = 6입니다.
int c, d, e; - c, d, e는 정수입니다.
c=a & b; - c = a and b로, a, 즉 3을 2진수로 변환하면 0011이고, b, 즉 6을를 2진수로 변환하면 0110입니다.(3 = 0*2^3 + 0*2^2 + 1*2^1 + 1*2^0, 6 = 0*2^3 + 1*2^2 + 1*2^1 + 0*2^0,^은 거듭제곱을 의미함)
and 연산은 두 비트가 모두 1일 때만 1을 반환하므로
0011
and 0110
0010 입니다. 2진수 0010을 10진수로 변환하면 2입니다. 그러므로 c는 2입니다.
d=a | b; - d = a or b로, or 연산을 두 비트 중 한 비트라도 1이면 1을 반환하므로
0011
or 0110
0111 입니다. 2진수 0111을 10진수로 변환하면 7입니다. 그러므로 d는 7입니다.
e=a ^ b; - e = a xor b로, xor 연산을 두 비트가 모두 같으면 0, 서로 다르면 1을 반환하므로0011
or 0110
0101 입니다. 2진수 0101을 10진수로 변환하면 5입니다. 그러므로 d는 5입니다.
printf(“%d %d %d\n”, c, d, e); - c, d, e를 차례대로 표시하면 2 7 5입니다.
행복한 하루되세요.^^