책 내용 질문하기
핵심65 2진연산 문제에 대해서 질문드립니다.
도서
[2013] SUMMARY 정보처리산업기사 필기
페이지
68
조회수
1619
작성일
2013-07-29
작성자
첨부파일

핵심65, 2번문제>-14를 부호화된 2의 보수 표현법으로 표현하시오

풀이법 다 보고 이해했는데 그 중 하나가 이해안되는게 있습니다.

부호를 왜 무시하고 하는지...

8번문제도 마찬가지입니다.

10번문제>2의 보수를 사용하는 컴퓨터에서 10진수 5와 11을 AND연산하고

Complement 하였다면 결과는?

5=0101

11=1011

0 1 0 1

AND 1 0 1 1

-------------

0 0 0 1

여기서 결과인 0001의 보수 1110을 2의보수법에 맞게 10진수로 변환합니다.

→ 이 부분이 잘 이해가 가질 않습니다..왜 1의보수까지만 구하죠?? 2의보수까지 구하는거 아니에요?

그리고 0001의 1의보수는 1110인데 여기에서 2의보수를취하면 1111이 되어야하지 않나요??

1110의 첫 번째 비트가 1이므로 1110의 부호는 음수입니다. 결과에 -를 붙입니다.

1110의 2의 보수를 구하면 0010, 즉10진수 2입니다.

→ 위에의문점이랑 마찬가지입니다 왜 1의보수까지만 구하고 1의보수인 1110을 왜 다시

1의보수를 취한다음(0001), 2의보수를 구하는지(0010)..

최종적으로 결과에 -를 붙이면 됩니다.

→맨 앞에 제가 질문올렸던 문제에는 부호를 무시했는데 여기서는 왜 또 부호를 적용하는지 모르겠어여

그리고 핵심65 내용전체적으로 이해가 되질 않네요, 표현범위는 이해했는데

나머지 부분은 읽어도 전혀 모르겠네요 문제랑 병행해서 이해시켜주시면 감사하겠습니다ㅠㅠ

--------------------------------------------------------------------------------------

시험 보름남겨두고 2과목 하나도 개념이 안잡힌 상태에서 하려니까

너무 힘드네요.. 명쾌한 답변 부탁드릴게요

답변
2013-07-30 09:36:58

안녕하세요.

9번 해설에 표현된 것처럼

10진수를 2진수로 표현하는 과정에서

음수를 표현할 때 1의 보수법이나 2의 보수법은 양수에 대한 보수를 구해서 표현해야 합니다.

즉 부호를 무시하고 양수를 해당 보수법으로 표현하면 그것이 음수 표현이라는 것이죠.

이에 비해 부호화 절대치 방법은 부호 비트만 1로 하면 그것이 음수 표현이 됩니다. 그래서 음수 표현이 가장 쉽다고 하는 것이죠.

그래서 -14를 2의 보수로 표현한다면 부호를 무시한 양수 14를 2의 보수로 표현하면 되는 것입니다.

14를 2진수로 변환하면 1110이고 여기에 조건에 주어진 자리수를 맞추기 위해 앞에 4비트에 0을 채우면 0000 1110 이 됩니다.

이제 2의 보수를 취합니다. 2의 보수를 취하는 방법은 먼저 1의 보수를 구한 후 거기에 +1을 하거나

오른쪽에서 왼쪽 방향으로 첫번째 1이 나올때까지 그대로 표현하고 나머지를 보수로 표현해도 됩니다.

먼저 1의 보수 후 +1 입니다.

0000 1110

1111 0001 <- 1의 보수

1111 0010 < +1

빠른 2의 보수

0000 1110

1111 0010 <- 오른쪽에서 왼쪽 방향으로 첫번째 1이 나올 때까지 그대로 표현하고 나머지는 보수(반대)로 표현

1111 0010은 2의 보수로 표현된 -14입니다.

이를 거꾸로 돌려보면 ... 맨 앞에 비트가 1이므로 부호는 -입니다.

이제 2의 보수를 10진수로 변환하려면 2의 보수로 변환한 과정을 역을 생각하면 됩니다.

10진수 -> 1의 보수 -> +1 10진수 -> 2의 보수

2의 보수 -> -1 -> 1의 보수 2의 보수 -> 10진수

1111 0010

1111 0001 <- -1

0000 1110 <- 1의 보수

10진수로 변환하면 14인데 맨 처음 부호를 확인했으니 -14가 됩니다.

8번도 같은 방법으로 이해한 후 다시한번 풀어보세요.

10번은

2의 보수를 사용하는 컴퓨터에서 10진수 5와 11을 AND 연산한 후 Complement(보수)를 취한 결과를 그대로 10진수로 구하는 것입니다.

앞서 2의 보수를 10진수로 변환할 때 부호를 확인했죠 가장 앞의 비트가 무엇이냐에 따라

10진수 5와 11을 우선 2진수로 변환하되 양수이니 부호 관계없이 그냥 변환합니다.

0101 <- 5

1011 <- 11

0001 <- AND 연산 <- AND 연산의 결과에 Complement(보수)를 취하라고 했으니

1110이 됩니다.

1110이고 현재 컴퓨터가 2의 보수를 사용하는 컴퓨터라고 했으니 2의 보수법에 의해 10진수로 표현해야 합니다.(초기 값이 10진수로 제시되었기 때문이죠. 근데 2진수로 변환해서 계산한 이유는 컴퓨터는 2진수로만 계산이 가능하기 때문입니다.)

2의 보수법으로 표현한 1110의 맨 앞의 비트가 1이므로 변환될 값을 음수(-)가 됩니다.

이제 1110을 2의 보수법으로 변환하면 0010이 됩니다. 0010은 십진수로 2이고 부호는 음수이므로 최종 결과는 -2가 됩니다.

10번 문제의 경우 자주 나오는 문제는 아니지만 문제에 제시된 여러 조건을 생각하면서 변환해야 합니다.

오늘도 즐거운 하루 되세요.

"
  • *
    2013-07-30 09:36:58

    안녕하세요.

    9번 해설에 표현된 것처럼

    10진수를 2진수로 표현하는 과정에서

    음수를 표현할 때 1의 보수법이나 2의 보수법은 양수에 대한 보수를 구해서 표현해야 합니다.

    즉 부호를 무시하고 양수를 해당 보수법으로 표현하면 그것이 음수 표현이라는 것이죠.

    이에 비해 부호화 절대치 방법은 부호 비트만 1로 하면 그것이 음수 표현이 됩니다. 그래서 음수 표현이 가장 쉽다고 하는 것이죠.

    그래서 -14를 2의 보수로 표현한다면 부호를 무시한 양수 14를 2의 보수로 표현하면 되는 것입니다.

    14를 2진수로 변환하면 1110이고 여기에 조건에 주어진 자리수를 맞추기 위해 앞에 4비트에 0을 채우면 0000 1110 이 됩니다.

    이제 2의 보수를 취합니다. 2의 보수를 취하는 방법은 먼저 1의 보수를 구한 후 거기에 +1을 하거나

    오른쪽에서 왼쪽 방향으로 첫번째 1이 나올때까지 그대로 표현하고 나머지를 보수로 표현해도 됩니다.

    먼저 1의 보수 후 +1 입니다.

    0000 1110

    1111 0001 <- 1의 보수

    1111 0010 < +1

    빠른 2의 보수

    0000 1110

    1111 0010 <- 오른쪽에서 왼쪽 방향으로 첫번째 1이 나올 때까지 그대로 표현하고 나머지는 보수(반대)로 표현

    1111 0010은 2의 보수로 표현된 -14입니다.

    이를 거꾸로 돌려보면 ... 맨 앞에 비트가 1이므로 부호는 -입니다.

    이제 2의 보수를 10진수로 변환하려면 2의 보수로 변환한 과정을 역을 생각하면 됩니다.

    10진수 -> 1의 보수 -> +1 10진수 -> 2의 보수

    2의 보수 -> -1 -> 1의 보수 2의 보수 -> 10진수

    1111 0010

    1111 0001 <- -1

    0000 1110 <- 1의 보수

    10진수로 변환하면 14인데 맨 처음 부호를 확인했으니 -14가 됩니다.

    8번도 같은 방법으로 이해한 후 다시한번 풀어보세요.

    10번은

    2의 보수를 사용하는 컴퓨터에서 10진수 5와 11을 AND 연산한 후 Complement(보수)를 취한 결과를 그대로 10진수로 구하는 것입니다.

    앞서 2의 보수를 10진수로 변환할 때 부호를 확인했죠 가장 앞의 비트가 무엇이냐에 따라

    10진수 5와 11을 우선 2진수로 변환하되 양수이니 부호 관계없이 그냥 변환합니다.

    0101 <- 5

    1011 <- 11

    0001 <- AND 연산 <- AND 연산의 결과에 Complement(보수)를 취하라고 했으니

    1110이 됩니다.

    1110이고 현재 컴퓨터가 2의 보수를 사용하는 컴퓨터라고 했으니 2의 보수법에 의해 10진수로 표현해야 합니다.(초기 값이 10진수로 제시되었기 때문이죠. 근데 2진수로 변환해서 계산한 이유는 컴퓨터는 2진수로만 계산이 가능하기 때문입니다.)

    2의 보수법으로 표현한 1110의 맨 앞의 비트가 1이므로 변환될 값을 음수(-)가 됩니다.

    이제 1110을 2의 보수법으로 변환하면 0010이 됩니다. 0010은 십진수로 2이고 부호는 음수이므로 최종 결과는 -2가 됩니다.

    10번 문제의 경우 자주 나오는 문제는 아니지만 문제에 제시된 여러 조건을 생각하면서 변환해야 합니다.

    오늘도 즐거운 하루 되세요.

    "
· 5MB 이하의 zip, 문서, 이미지 파일만 가능합니다.
· 폭언, 욕설, 비방 등은 관리자에 의해 경고없이 삭제됩니다.