2진수 연습문제를 푸는데 제 답에 확신이 가지 않습니다.

dvwn의 이미지

1. 2의 보수로 표현된 이진수 01011011을 십진수로 바꾸면 ( 91 )이다.

2. 십진수 47을 2의 보수로 표현된 이진수로 바꾸면 ( 101111 )이다.

3. 십진수 -47을 2의 보수로 표현된 이진수로 바꾸면 ( 010001 )이다.

4. 2의 보수로 표현된 이진수 11001011을 십진수로 바꾸면 ( -53 )이다.

괄호안에 답을 쓰는겁니다만...문제에 몇 비트인지가 없어서 그런지 제 답에 확신이 가지 않습니다.
제 답을 봐주시고, 틀린 것이 있다면 올바른 답과 풀이과정을 상세히 적어주시면 감사하겠습니다.ㅠㅠㅠ

참, 먼저 제 풀이를 봐주세요.
1.풀이
01011011은 양수니까, 2의 보수 풀이가 되지 않으니 그대로 이진수로 바꿔 91이 나왔습니다.

2.풀이
십진수 47은 마찬가지로 음수가 아니니까, 그대로 이진수로 바꿔 101111.

3.풀이
십진수 -47에서 -를 떼고 이진수로 바꾸면 101111. 1의 보수를 취하면 010000. 여기서 1을 더해 010001이 나왔어요.

4.풀이
이진수 11001011은 음수니까...-1을 하면 11001010. 1의 보수를 취하면 00110101. 이를 십진수로 바꾸면
53인데 음수니까 -붙여서 -53 나왔습니다.

황병희의 이미지

국딩때 아부지께 주판으로 계산하는걸 잠시 배웠던 기억이 나서요,,,
보수의 개념만 그냥저냥 제가 이해한대로 적어봅니다.

[3 더하기 8 => 11] 을 주판으로 계산한다치면 절차가...
[1] 3을 올린다.
[2] 10의 자리수 1개를 올린다.
[3] 8의 보수인 2를 내린다.
[4] 결과는 11

보수자리수가 변경되는 지점에 있는 수. 전 이렇게 이해했네요~

[우분투 18.04 파여폭스 나비에서 작성했어요~]

--
^고맙습니다 감사합니다_^))//

dvwn의 이미지

!!!

황병희의 이미지

정답은 아니지만,,, 보수를 이해하는데 보탬이 되었음 하는 마음에 적어봅니다~

[11 빼기 8 => 3] 을 보수 원리로 풀어볼께요. 역시 국딩때 배운 주판 계산법이어요~

[1] 11을 놓는다.
[2] 8의 보수 2를 추가로 올린다.
[3] 10의 자리수 1개를 뺀다.
[4] 결과는 3 이 남는다.

[우분투 18.04 파여폭스 나비에서 작성했어요~]

--
^고맙습니다 감사합니다_^))//

익명 사용자의 이미지

어떤 수를 2의 보수로 나타내라고 할 때는 당연히 몇 비트로 나타내라는 건지도 같이 적혀 있어야 합니다.

그게 없다면 뭔가 이상한 상황입니다만, 만약 그럼에도 불구하고 꼭 문제를 풀어야겠다면, 음...

저라면 "해당 수를 2의 보수로 나타낼 수 있는 최소의 비트 수" 및 "문제에서 제시한 다른 2의 보수의 비트 수" 중 큰 것을 택하겠습니다.

아시겠지만, 필요한 것보다 더 커서 문제가 될 일은 없거든요.

==============================

1. 2의 보수로 표현된 이진수 01011011을 십진수로 바꾸면 ( )이다.

=> 따져 볼 것도 없이 91이죠.

2. 십진수 47을 2의 보수로 표현된 이진수로 바꾸면 ( )이다.

=> 십진수 47을 2의 보수로 표현하려면 최소한 7비트(-64 ~ 63)가 필요합니다. 한편 앞선 문제에서 제시된 2의 보수 표기는 8비트로 표현되고 있었죠. 둘 중 더 큰 8비트를 택합니다.

답은 00101111 입니다.

3. 십진수 -47을 2의 보수로 표현된 이진수로 바꾸면 ( )이다.

=> 앞서와 같은 논리로 8비트로 표현합니다 답은 11010001 입니다.

4. 2의 보수로 표현된 이진수 11001011을 십진수로 바꾸면 ( )이다.

=> 여기서도 8비트를 쓰고 있군요. 문제에서 암묵적으로 8비트 2의 보수 표기를 가정하고 있다는 생각에 확신을 심어줍니다. 그건 그렇고 답은 -53이겠죠.

==============================

이렇게.

때로는 문제가 잘못되었거나 불완전하다는 것을 알면서도 그걸 풀어야만 하는 경우가 있습니다.

그런 경우라면 문제에서 출제자의 의도를 유추하고 거기에 맞게 풀어내야겠죠. 운이 좋으면 만사형통입니다.

그렇지 않다면, 채점하는 사람과 싸워야(!) 하는 상황으로 번질 수도 있지요... 어쩌겠습니까.

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.