틀리기 쉬운 2의 보수 문제 풀이

Поделиться
HTML-код
  • Опубликовано: 12 ноя 2024

Комментарии • 148

  • @snowbellsk6895
    @snowbellsk6895 11 месяцев назад +1

    와우 그동안 많이헷갈렸는데 감사합니다.

    • @대멀쌤
      @대멀쌤  11 месяцев назад

      이제 헷갈리지 않으실거에요.
      그런데 시간 지나면 또 헷갈려요ㅎㅎㅎㅎ
      이게 매직입니다ㅜㅜ

  • @아아스베
    @아아스베 Год назад +1

    선생님 덕분에 감이 좀 잡히네요
    에이플 맞아올게요🎉🎉🎉

    • @대멀쌤
      @대멀쌤  Год назад

      감사합니다.
      열공하세요!!

  • @koy7320
    @koy7320 6 месяцев назад +1

    선생님 질문이 있습니다! 혹시 부호 비트가 포함된 55-22의 계산과 포함되지 않은 계산의 연산 과정을 설명해 주실 수 있으실까요??

    • @대멀쌤
      @대멀쌤  6 месяцев назад

      55는 32+16+4+2+1네요. 그러니 110111입니다.
      22는 16+4+2입니다. 그러니 10110입니다.
      비트수를 6비트로 맞추면 110111-010110이 되겠네요.
      1. 부호비트가 포함된 7비트 연산
      55 => 0110111
      -22 => 1010110 (2의 보수는 1101010)
      55-22 는
      0110111
      + 1101010
      -------------------
      1 0100001 (자리올림수 무시)
      정답 : 0100001 (십진수 33)
      2. 부호비트가 포함된 8비트 연산
      55 => 00110111
      -22 => 10010110 (2의 보수는 11101010)
      55-22 는
      00110111
      + 11101010
      -------------------
      1 00100001 (자리올림수 무시)
      정답 : 00100001 (십진수 33)
      3. 부호비트가 포함되지 않은 6비트 연산
      55 => 110111
      -22 => 010110 (2의 보수는 101010)
      55-22 는
      110111
      + 101010
      -------------------
      1 100001 (자리올림수 무시)
      정답 : 100001 (십진수 33)
      4. 부호비트가 포함되지 않은 8비트 연산
      55 => 00110111
      -22 => 00010110 (2의 보수는 11101010)
      55-22 는
      00110111
      + 11101010
      -------------------
      1 00100001 (자리올림수 무시)
      정답 : 00100001 (십진수 33)
      혹시 틀린 부분이 있을 수 있으니 검산을 꼼꼼히 해보시기 바랍니다.

    • @koy7320
      @koy7320 6 месяцев назад +1

      @@대멀쌤 정말 감사합니다 선생님! 다만 제가 알고 있는 정보로는 2의 보수 체계에서 표현 가능한 수는 -2의 n-1승 ~ (2의 n-1승) -1으로 알고 있는데 6비트로 연산을 하게 되면 표현 가능한 수가 -32~31까지가 아닌가요?? -22는 범위안에 들어오지만 55는 2의 보수 체계로 바꾸지 않아서 범위랑 무관하여 연산이 가능하다고 알면될까요??

    • @대멀쌤
      @대멀쌤  6 месяцев назад

      @@koy7320 111111은 65입니다.
      즉 6비트는 0부터 65까지 표현 가능합니다.
      말씀주신 내용처럼 부호비트가 있다면 6비트로는 표현 불가하기에
      부호비트가 있는 연산은 7비트와 8비트로 연산해서 댓글 달았던 것입니다.

    • @koy7320
      @koy7320 6 месяцев назад +1

      @@대멀쌤 선생님 그럼 14+19를 부호가 있는 비트가 포함된 계산을 6비트로 표현할 때 -31이 나오는 오버플로우가 발생되는데 이에 대한 식을 설명해 주실 수 있나요?? 111111에서 최상위 1을 음수 표현으로 잡고 나머지를 연산해서 -31이 나오는 걸로 알고 있긴 한데 맞는지 궁금합니다.

    • @대멀쌤
      @대멀쌤  6 месяцев назад

      @@koy7320 시스템마다 오버플로 계산이 상이할 수 있기에 확답드릴 수는 없지만 해보겠습니다.
      14+19는 33입니다.
      33은 31보다 2가 큽니다.
      011111는 31입니다. 여기에
      1을 더하면 100000이 됩니다. 다시
      1을 더하면 100001이 됩니다.
      100001은 음수이기에 2의보수로 변형합니다.
      100001
      111110
      + 1
      --------------
      111111
      즉 -31처럼 보이지만 -1에 대한 2의보수 표현이 아닐까 추정해봅니다.

  • @꽁-ss
    @꽁-ss 3 месяца назад +1

    2+(-6)을 할 때 0010 + 1110을 그냥 계산하면 안되나요?
    보수법이라는게 뺄셈을 덧셈으로 계산하기위해 2-6을 2+(-6)으로 바꾸는것이라고 알고있는데
    이 경우에 0010 - 0110을 0010 + 1110으로 바꾸고 또 보수를 취하는 것이 이해가 가지 않습니다

    • @대멀쌤
      @대멀쌤  3 месяца назад

      @@꽁-ss 가산기라고 하는 하드웨어 회로가 저렇게 보수동작을 취하는 것이기때문에 수학적으로 이해가 가지 않을 수도 있습니다.
      하지만 또 이산수학이라는 학문 분야에서는 저런 계산이 이성적이고 자연스럽게 통용되고 있죠.
      비트 자체는 음양의 의미를 갖지 않기에 부호비트를 사용하여 음양을 표현합니다.
      하지만 대상 수를 저장하는 비트의 수에 제한이 있기에 연산 결과의 부호비트가 변화하기도 하죠.
      그래서 정답이 음수인 연산에 대해서 중간결과에 다시 보수화하는, 다소 복잡한 방식이 된 것 입니다.
      보수는 이해가 되다가도 이해가 안되기도하고 다시 이해가 되었다가 다시 또 이해가 안가고 그렇습니다.
      저도 그렇거든요ㅎㅎ

    • @꽁-ss
      @꽁-ss 3 месяца назад +1

      1110의 부호비트가 1이니까 보수처리한거라고 이해하면 될까요??

    • @꽁-ss
      @꽁-ss 3 месяца назад +1

      부호를 포함하지 않는 비트에서 2의보수법으로
      2-6을 계산한다고 했을때
      0010-0110
      0010+(1001+1)=0010+1010=1100 = 12인데 이것도 이해가 되지않습니다ㅠㅠ 너무 답답해요
      부호를 포함하는 비트에선 2-6이
      0010+1110에서 1110의 부호비트가 1이니 2의보수를 취해
      0010+(1001+1)=1100에서 부호비트가 1이니
      1011+1=1100=-4가 되는게 맞을까요??

    • @대멀쌤
      @대멀쌤  3 месяца назад

      @@꽁-ss
      부호를 포함하지 않은 4비트 2의보수법으로 2-6을 계산해볼게요.
      0010 - 0110
      0010 + (1001+1) =
      0010 + 1010 = 1100
      이 때 올림수가 발생하지 않으면 다시 2의 보수 처리합니다.
      1100 -> 0011 + 1 = 0100
      마지막 결과 비트에 음수 부호를 붙입니다.
      결과는 -0100 이므로 -4입니다.
      ----------------------------------------------------------------
      부호를 포함하는 4비트 2의보수법으로
      2-6을 계산해볼게요.
      0010 + 1110
      0010 + (1001+1) =
      0010 + 1010 = 1100
      이 때 올림수가 발생하지 않으면 다시 2의 보수 처리합니다.
      1100 -> 1011 + 1 = 1100
      결과는 1100 이므로 -4입니다.

    • @대멀쌤
      @대멀쌤  3 месяца назад

      @@꽁-ss 제가 풀이하여 드린 답글을 참고해주세요.

  • @qwert-g8l
    @qwert-g8l Месяц назад +1

    영상을 보다가 헷갈리는 점이 있어 질문을 드립니다.
    다른 강의에서는 2의 보수를 취하는 방법이 1. 1의 보수를 취한다. 0->1 1->0 2. +1 을 한다 였습니다
    근데 여기서는 msb가 1이 있으면 0으로 바꿔주지 않는데 왜 그런건가요?

    • @대멀쌤
      @대멀쌤  Месяц назад

      @@qwert-g8l msb는 부호비트이므로 반전되지 않습니다.

    • @qwert-g8l
      @qwert-g8l Месяц назад +1

      @@대멀쌤 빠른 답변 감사합니다!
      다만 그렇다면 2의 보수 표현에서 예를 들어 -6 을 구현하고 싶으면 +6에서 2의 보수를 취해야 할텐데
      +6 은 4bit 형식에서 0110 일테고
      여기서 msb를 반전시키지 않은 상태에서 1의 보수를 취해주면 0001 이고
      +1을 해주면 0010 이 됩니다.
      이러면 잘못된 것 아닌가요?

    • @대멀쌤
      @대멀쌤  Месяц назад

      @@qwert-g8l 네.
      양수는 보수화하지 않고 그대로 연산합니다.
      음수만 보수화 합니다.

    • @qwert-g8l
      @qwert-g8l Месяц назад +1

      음.. 제가 한 질문은 -6을 2의 보수 방식으로로 표현해주기 위해 6의 2의 보수를 구하는 과정에서 msb의 부호를 반전시키지 않는다면 최종단계에서 -6이라면 msb가 1이어야 하지만msb가 0이 나와버리는 결과가 나오는데 이것이 잘못된게 아닌가요??

    • @대멀쌤
      @대멀쌤  Месяц назад

      @@qwert-g8l -6이 2의 보수화 된다면
      1110 -> 1001(1의 보수) -> 1010(2의 보수) 로 처리됩니다.
      즉, -6의 2의보수는 1010입니다.

  • @user-zs8mh7mz8g
    @user-zs8mh7mz8g 7 месяцев назад +1

    저번 강의 2의 보수에서 캐리 발생 안 하면 2의 보수 또 취하라고 하셨는데 2의 보수를 또 취해도 캐리가 발생 안 하면 그냥 그 상태가 답인건가요?
    첫번째 문제에서 -4처럼 보이지만 함정이라서 2의 보수를 또 취해야 한다. 이 부분은 캐리가 발생하지 않이서 2의 보수를 또 취하는 거라고 이해하면 될까요?
    저번 강의에서는 -를 붙여서 2진수로 변환 후 2의 보수 취할 때 -를 +로 바꿔서 계산하셨는데 이번 강의에서는 아예 비트 앞에 부호 비트를 추가하신 후 2의 보수를 취할 때도 부호 비트는 그대로 가져간다고 하셨잖아요
    그럼 풀이 방식은 어느걸로 하는 게 더 효율적인 걸까요?

    • @대멀쌤
      @대멀쌤  7 месяцев назад

      1. 보수 연산 자체에서 캐리는 발생하지 않습니다.
      2. 맞습니다.
      3. 첫번째 비트(최상단비트, 가장 왼쪽 비트)가 부호 비트인 것이 더 일반적이겠지만 문제 출제시 부호 비트가 있는지 없는지 표시될 것이고, 만약 부호 비트에 대한 안내가 없다면 문제를 풀기 전에 물어봐야 합니다,

    • @user-zs8mh7mz8g
      @user-zs8mh7mz8g 7 месяцев назад

      @@대멀쌤정성스런 답변 감사합니다. 그런데 선생님 제가 과제하다가 모르는 부분이 생겼는데 물어볼 데가 없어서 질문 드립니다
      3d21-f4bc
      16진수의 연산 방법 알려주실 수 있나요?

    • @대멀쌤
      @대멀쌤  7 месяцев назад

      @@user-zs8mh7mz8g
      16진수 4자리 수는 2진수로하면 16비트가 됩니다. (16진수 한 자리는 2진수 4비트이기 때문입니다.)
      참고 링크1 : ruclips.net/video/Pf6AlZ65NZI/видео.htmlsi=d2zmdx2kxg4E3dIG
      참고 링크2 : ruclips.net/video/Owz3RX7-sJk/видео.htmlsi=w9_a1nfqZMC9O3b2
      3d21은 0011 1101 0010 0001 이 되고
      f4bc는 1111 0100 1011 1100 이 됩니다. (편의상 4비트마다 공백을 주었습니다.)
      3d21 - f4bc 이기 때문에
      0011 1101 0010 0001 - 1111 0100 1011 1100
      부호가 없는 2의 보수 방식이라고 판단해서 연산하겠습니다.
      - 1111 0100 1011 1100 은
      + 0000 1011 0100 0011 이며 => 1의 보수
      +1
      ----------------------------------------
      + 0000 1011 0100 0100입니다. => 2의 보수
      이제 3d21인 0011 1101 0010 0001에
      - f4bc의 2의 보수인 + 0000 1011 0100 0100을 더하겠습니다.
      0011 1101 0010 0001
      + 0000 1011 0100 0100
      -----------------------
      0100 1000 0110 0101
      결과값에 자리 올림수가 없으니 다시 2의 보수하고 -(마이너스) 기호를 붙이겠습니다.
      0100 1000 0110 0101
      1011 0111 1001 1010 => 1의 보수
      - 1011 0111 1001 1011 => 2의 보수 (정답의 2진수 표기)
      이를 다시 4비트씩 묶어서 16진수로 표기하면
      - 1011 0111 1001 1011
      - b 7 9 b (정답의 16진수 표기)
      즉, -b79b 입니다.

    • @대멀쌤
      @대멀쌤  7 месяцев назад

      @@user-zs8mh7mz8g
      다른 방식(10진수 변환 방식)으로 해보면
      3d21 = 3*16*16*16 + 13(d)*16*13 + 2*16 + 1*1(16의 0승) 이므로
      12,288 + 3,328 + 32 + 1
      즉, 3d21 = 15,649
      f4bc = 15(f)*16*16*16 + 4*16*16 + 11(b)*16 + 12(c)*1(16의 0승) 이므로
      61,440 + 1,024 + 176 + 12
      즉, f4bc = 62,652
      3d21 - f4bc = 15,649 - 62,652 = -47,003
      - 47,003를 2진수로 변환하면
      - (32768 + 8192 + 4096 + 1024 + 512 + 256 + 128 + 16 + 8 + 2 + 1) 이므로
      - 1011011110011011이다.
      즉, - 1011 0111 1001 1011 이므로 4비트씩 묶어서 16진수화 하면
      -b79b

    • @대멀쌤
      @대멀쌤  7 месяцев назад

      @@user-zs8mh7mz8g
      16진수 자체로 연산하면
      3d21 - f4bc = -(f4bc - 3d21) 이므로
      f4bc
      - 3d21
      ---------
      b79b
      위 중간 답에 음수기호를 붙여 정답을 만듭니다. => -b79b
      i) c에서 1을 빼면 b가 됩니다.
      ii) b에서 2를 빼면 ->a->9로 구가 됩니다.
      iii) 하나 높은 자리수에서 1을 받는 4는 16이 증가한 셈이므로 (4+16) - 13(d) 이므로 7이 됩니다.
      iiii) f가 하나 낮은 자리에 1을 빌려주고 e가 되며 e에서 3개를 빼면 ->d->c->b로 b가 됩니다.

  • @김인절미
    @김인절미 9 месяцев назад +1

    선생님 도와주세요 4비트 2의보수로 표현된 2진수 1110 + 1010 을 10진수로 표현한게 어떻게 -8이 될까요? 이건 -문제가 아니고 양수 +양수문제같은데 그냥 1110+1010더하면 11000 나오는데 5번째 자리 캐리를 어떻게 해야하는지 궁금합니다 보수문제 (문제에 -음수가잇으면 1의보수 캐리는 그값에 +1을 하고 2의보수는 캐리를 버린다고 선생님 유튜브로 배웠습니다 )

    • @대멀쌤
      @대멀쌤  9 месяцев назад +1

      부호비트를 포함하지 않은 비트열이라는 가정이라면 1110 + 1010은 십진수로 14+10으로 24가 나옵니다.
      그러니 답이 -8이 맞다면 위의 가정은 틀렸겠죠?
      그럼 부호비트를 포함한 비트열이라고 가정한다면 1110 + 1010을 역산하여
      1110 -> 1001(1의 보수) + 1 => 1010(2의 보수), 즉, -2
      1010 -> 1101(1의 보수) + 1 => 1110(2의 보수), 즉, -6
      즉, -2와 -6을 더했으니 답이 -8이 나오는 것이 맞네요.
      결론은, 댓글달아주신 1110 + 1010 식은 부호비트를 포함한 비트열로 이루어진 연산식 입니다.

    • @김인절미
      @김인절미 9 месяцев назад

      @@대멀쌤 사랑해요 그댄나의 sunshine 또올게요♡

    • @Heab99
      @Heab99 9 месяцев назад +1

      @@대멀쌤저도 이분하고 똑같은게 궁금해서 왔는데요 ㅠㅠ 캐리 있으면 양수 캐리 없으면 음수 아닌가요?

    • @대멀쌤
      @대멀쌤  9 месяцев назад

      @@Heab99 맞습니다.
      하지만 음수와 음수의 연산은 조금 다를 수 있습니다.

  • @문상협-w2n
    @문상협-w2n Год назад +1

    강의 잘 보고 있습니다
    중간결과 주호 비트 1일때 다시 보수취하시는데 보수 취해도 중간결과랑 마지막 결과가 같은건 왜그런건가요??필요한 과정인가요??

    • @대멀쌤
      @대멀쌤  Год назад +1

      중간 결과는 2의 보수 상태인 것이고 마지막 결과는 부화와절대치 상태이기에 서로의 상태가 다릅니다.
      결국 연산 결과가 음수로 나올 때에는 그 결과값이 2의보수 상태로 나온 것이기 때문에 그 2의보수를 인간이 잘 알아볼 수 있게 마지막에 부호와절대치 방식으로 바꿔준다고 생각하시면 됩니다.
      반대로 연산 결과가 양수로 나올 때에는 2의보수가 아닌 부호와절대치 방식으로 값이 도출되기 때문에 다시 2의보수를 취하지 않아도 그대로 부호와절대치 방식인 것이지요.

  • @주키애오
    @주키애오 Год назад +1

    4bit 1111은 +15가 되나요? 아님 -7이 되나여?
    동일한 2진수 값을 두고 음수, 양수인지는 어떻게 컴퓨터가 판단하는 건가요,,?😢

    • @대멀쌤
      @대멀쌤  Год назад

      컴퓨터는 정해진 방식에 의해 1111을 판단합니다.
      +15일 수도 있고 -7일 수도 있죠, 혹은 다른 의미를 지닐 수도 있습니다.
      다만 우리가 시험을 보거나 누군가에게 정보를 정확히 전달할 때 해당 비트가 어떤 값을 가지고 있는지를 표현하기 위해 가장 왼쪽 비트가 부호 비트이며 해당 비트를 어떤 방식으로 해석해야 하는 것인지를 서로 약속하죠.
      가령 부호 비트가 있는 부호와절대치 방식의 비트라고 한다면 1111은 -7이 될 것입니다.
      아래 링크의 영상을 보시면 도움이 되실 듯 합니다.
      뎔공하세요!!
      ruclips.net/video/FFAZFIsqBrA/видео.html

  • @김인절미
    @김인절미 9 месяцев назад +1

    선생님 2보수 강의 보고 여기왓는데요 선생님이 2보수 강의할때는 구한값에 캐리가 발생하지않으면 모든 4비트를 바꾸고 +1을 하시라고 햇자나요 ?
    예를들어 0010+1010 = > 1100 (캐리발생 X->다시 모든 4비트수 뒤집고 제일 오른쪽자리+1) 그리고 앞에 음수부호 - 붙이기
    그럼 답은 -0100 =>-4 이렇게 되는게 아닌가요?

    • @대멀쌤
      @대멀쌤  9 месяцев назад

      설명하신 내용이 맞습니다.

  • @retoha8893
    @retoha8893 Год назад +1

    혹시 1번문제 1100에서 다시 보수를 취할 때 왜 1011 상태에서 1을 더해주는건가요? 0011로 바뀌고 1을 더해줘야하는거 아닌가요?

    • @대멀쌤
      @대멀쌤  Год назад

      2의 보수이기 때문입니다.
      2의 보수는 0은 1로, 1은 0으로 변한 후 최하위 비트에 1을 더합니다.

  • @user-wv6qw5ei2j
    @user-wv6qw5ei2j Год назад +1

    안녕하세요 영상 잘 보고 있습니다
    질문이 있어 댓글 남깁니다. 제가 보고 있는 책에서는
    6 + (-7)의 결과가 1111 이고, (-1) 이라는데 제가 계산해 본 바로는
    0110 + 1001 = 1111 이고, 캐리가 발생하지 않아 2의 보수를 한 번 더 취해주면 0001 이 되는데, 뭐가 잘못된걸까요?

    • @대멀쌤
      @대멀쌤  Год назад

      책의 1111은 2의보수 그대로의 값이기에 사람이 보기에 직관적으로 -1인지 알기 어렵죠.
      1001은(0001은 틀린 답이에요~)은 부호와절대치 방식으로 사람이 이해하기 쉽죠.
      즉, 2의보수인 1111과 부호와절대치인 1001은 그 값이 같은거죠.

    • @user-wv6qw5ei2j
      @user-wv6qw5ei2j Год назад +1

      @@대멀쌤 그렇다면 시험 문제에서 6 + (-7)의 값을 2의 보수 표기법으로 변환하여 연산하라고 한다면
      1111 과 1001 모두 정답이 될 수 있는 걸까요?
      부호의 절대치가 정확히 뭔지, 2의 보수와의 차이점도 궁금합니다.

    • @대멀쌤
      @대멀쌤  Год назад +1

      보통은 1001로 정답을 표기합니다.
      책에서 어떤 의도로 1111로 답을 표기했는지 궁금하네요.
      혹시 여유있으시면
      아래 동영상을 통해 부호와절대치, 1의보수, 2의보수의 관계를 학습해보세요^^
      왜 부호와절대치 1001과 2의보수 1111의 값이 같다고 했는지 아실 수 있을 것입니다.
      마치 십진수 10과 2진수 1010이 값이 같다고 표현하는 것과 비슷합니다.
      ruclips.net/video/FFAZFIsqBrA/видео.html

  • @ljh4084
    @ljh4084 4 года назад +1

    감사합니다

    • @대멀쌤
      @대멀쌤  4 года назад

      응원 감사드립니다^^

    • @ljh4084
      @ljh4084 4 года назад +1

      @대멀쌤 까먹을 때마다 보러 옵니다ㅠ

    • @대멀쌤
      @대멀쌤  4 года назад

      2의 보수 아리송할 때가 많긴 하죠ㅎㅎ

  • @나다-t7y
    @나다-t7y Год назад +1

    선생님 부호포함 4비트면 2진수로 표현할 때 맨 왼쪽 자리에 양수이면 0, 음수이면 1로 표현하는데 만약 2+(-8)을 계산할 때는 8을 부호포함 2진수로 표현하면 어떻게 해야하나요? 이미 8은 1000이라 맨 왼쪽 자리에 1이 있어서 이런 경우엔 어떻게 하는지 궁금합니다

    • @나다-t7y
      @나다-t7y Год назад +1

      또, 문제에 부호포함 n비트가 아니라 그냥 n비트라고만 써 있으면 맨 왼쪽에 0과 1로 부호를 표현하지 않아도 되는 건가요?? 부호포함 n비트라고 써진 문제를 못 봐서요

    • @대멀쌤
      @대멀쌤  Год назад

      질문하신 내용은 아래 링크를 보시면 궁금증이 풀리실 것 같습니다.
      ruclips.net/video/FFAZFIsqBrA/видео.html

    • @나다-t7y
      @나다-t7y Год назад

      아 그리고 2+(-4) 계산에서 2의 2진수와 4의 2의 보수를 더한 0010+1010=1100에서 맨 왼쪽인 부호가 1이 나왔을 때는 보수를 한 번 더 취해야 한다고 말씀하셨는데 만약 부호포함 n비트 계산이 아니고 그냥 n비트 계산이면(맨 왼쪽에 부호표시X일 때) 맨 왼쪽 값이 1이 나와도 보수를 한 번 더 안 취해도 되나요??

    • @대멀쌤
      @대멀쌤  Год назад

      @@나다-t7y 부호를 포함한 것인지 꼭 물어봐야하고 만약 아무 조건이 없다면 오버프로 되지 않는 범위 내에서 부호가 있는 계산을 하시는 것을 추천드립니다.

    • @대멀쌤
      @대멀쌤  Год назад

      @@나다-t7y 부호가 없는 연산식에서 캐리가 없으면 다시 보수화 하시고 최종 결과에 부호를 직접 붙이시면 됩니다.

  • @dhl4162
    @dhl4162 3 года назад +1

    안녕하세요! 궁금한 게 있어서 댓글남깁니다..!
    (-120) + (-8) 을 부호포함 8비트로 2의보수 체계를 사용하여 구하고자 할 때,
    -120 = 1111 1000 -> 1의 보수 1000 0111 -> 2의 보수 1000 1000
    -8 = 1000 1000 -> 1의보수 1111 0111 -> 2의보수 1111 1000 이 되므로
    1000 1000 + 1111 1000 = 1000 0000 이 되었습니다. (올림수 제외)
    음수이므로 2의 보수 다시 취하면
    1111 1111 + 1 = 1 0000 0000 이 되어, 자리올림수 1 무시하면 0000 0000이 되는데
    이것은 왜 그런 것일까요? 이것을 보고 -128을 어떻게 알 수 있을까요?
    추가로, 부호화 2의보수의 정수 표현 범위가 -128~+127 인 것으로 알고 있는데 가장 작은 값인
    1111 1111이더라도 -127 까지 밖에 표현이 안되는 데 -128은 어떻게 표현되는 것인가요?
    추가로 (-120) + (-9) 를 할 경우, -129 가 되어 부호있는 8비트 정수표현범위를 넘어가게 되는데
    이것과 관련한 문제들을 해결하려면 어떤 개념을 공부하면 될까요?

    • @대멀쌤
      @대멀쌤  3 года назад

      댓글 표현이 아주 멋지고 전문성이 있으시네요.
      지금까지의 질문중에 가장 어렵네요ㅜㅜ
      기존 댓글 내용을 또, 또 수정합니다.
      계산 중간에
      1000 1000 + 1111 1000를 실시하면
      중간 계산 결과는 1 1000 0000이 맞네요. ㅜㅜ
      자리올림수를 무시하면
      1000 0000이 남습니다.
      이를 1의 보수화 합니다. 그럼
      1111 1111이 됩니다. 여기에 1을 더합니다. 그럼 2의 보수에서 오버플로가 날 것 같습니다.
      부호를 그대로 두고 오버플로를 계산하면
      1000 0000 이 됩니다. 이는 부호와절대치 혹은 1의 보수방식에서 -0에 해당합니다.
      2의 보수에서 -0은 없는 수이므로 이 -0에 해당하는 값이 바로 -128가 됩니다.
      아래의 강의를 보시면 이해되시는 부분이 있을 것 같습니다.
      ruclips.net/video/FFAZFIsqBrA/видео.html
      그리고 -120 -9는 당연히 오버플로가 일어날 것이며 오버플로 오류로인해 +1이 출력될 것 같습니다.

    • @dhl4162
      @dhl4162 3 года назад +1

      댓글 감사합니다 선생님!
      링크 주신 강의가 큰 도움이 되었습니다!!

    • @대멀쌤
      @대멀쌤  3 года назад +1

      @@dhl4162 이 모든 것을 이해하셨다니 대단하신듯 합니다!!
      주변에 홍보 부탁드릴게요^^
      열공하세요!!

    • @대멀쌤
      @대멀쌤  3 года назад

      @@dhl4162 제가 자꾸 틀려서 답을 자꾸 수정하게 되네요. 이번 문제는 제가 정확히 풀었는지 모르겠습니다. 자신이 없네요. 혹시 정확히 아시는 분은 댓글 달아주세요~ ㅜㅜ

    • @dhl4162
      @dhl4162 3 года назад +1

      @@대멀쌤 링크 주신 강의가 많은 도움이 되었습니다!
      문제가 풀리게끔은 나름의 방법으로 이해해보았는데 맞는지는 모르겠네요..
      1000 1000 + 1111 1000 = 1000 0000에 대하여
      링크 주신 강의에 따라
      2의 보수법표현 1000 0000은
      십진수 -128 이 들어갈 수 있게되는 부호화 2의보수 표현 비트열이라고 이해했습니다.
      따라서 십진수 결과값은 -128이라고 이해했습니다.
      그리고 오버플로를 이해하기 위해
      1000 0000을 십진화 하기 위해 2의 보수화 하면
      1111 1111 + 1 = 1 0000 0000
      = 0000 0000 (자리올림 수 제외) 이 됨을 확인한 후 추가로 (-120) + (-9)을 계산해보았습니다.
      (-120) - (-9) 의 경우에는,
      -120 = 1111 1000 (부호화절대치) -> 1000 0111 (1의 보수) -> 1000 1000 (2의보수)
      -9 = 1000 1001 (부호화절대치) -> 1111 0110 (1의 보수) -> 1111 0111 (2의보수)
      1000 1000 + 1111 0111 = 0111 1111 (오버플로 발생)
      0111 1111 을 2의 보수화 하면, 0000 0000 + 1 = 0000 0001
      이라는 점에서,
      앞서 -128의 부호화 2의보수 표현인 1000 0000을
      부호화 절대치화 했을 때 0000 0000 이었던 것처럼
      -129 가 0000 0001이니
      -129는 선생님께서 말씀하신대로
      십진수 1로 표현된다고 이해했습니다.
      확인을 위해
      (-120) + (-10) 의 경우
      (-120) = 1000 1000
      (-10) = 1000 1010 (부호화절대치) -> 1111 0101 (1의보수) -> 1111 0110 (2의보수)
      1000 1000 + 1111 0110 = 1 0111 1110 -> 올림수 제외 -> 0111 1110 (오버플로 발생)
      0111 1110 -> 0000 0001 (1의 보수) -> 0000 0010 (2의 보수)
      = 십진수 2로 표현됨
      을 확인했습니다!
      오버플로 관련하여 맞게 이해한것인지는 모르겠으나 문제는 풀리는 것 같네요...
      감사합니다 선생님!!

  • @_Heart_777
    @_Heart_777 2 года назад

    궁금한거 여쭤봅니다.
    1. 부호포함한 방식으로 표현한 두 이진수를 더해서 나온 값의 첫번째 비트도 부호로 보는건가요?
    그럼 부호를 포함하지않은 방식으로 포현한 이진수를 더해서 나온 첫번째 비트는 부호로 보지않는건가요?
    2. 풀이가 맞는지 봐주시면 감사할게요.
    문제 : 21+11을 부호포함한 2진수 6비트로 계산하시오.(2의보수 이용)
    풀이 : 21은 010101 , 11은 001011입니다. 이 두개를 더하면 100000이 나오는데 여기의 1은 부호니까 100000은 0이라서 오버플로우이다.
    혹시 이 풀이가 맞나요??

    • @대멀쌤
      @대멀쌤  2 года назад

      반갑습니다. 우선 질문에 답을 드릴게요.
      1. 부호를 포함한 방식으로 표현한 두 이진수를 더해서 나온 값의 첫번째 비트도 부호비트입니다.
      2.
      - 문제 : 21+11
      - 풀이 : 21은 010101 , 11은 001011, 두 수를 더하면 100000이 나오죠. 이미 오버플로입니다. 이유는 양수와 양수를 더하여 음수가 나오지 않기 때문입니다. (컴퓨터 입장에서는 cpu의 상태레지스터를 참조하면 이는 오버플로라는 것을 알 수 있습니다.)
      그러니 라는 멘트는 참이라고 보기 어렵습니다.
      - 참고 : 부호를 제외한 5개의 비트로 나타낼 수 있는 경우의 수는 32가지이며 이를 정수로 표현해보면 0부터 31까지입니다.
      그런데 21+11, 즉, 32를 5개의 비트로 나타내라고 하면 불가능하겠죠? 표현 범위를 벗어나 넘치겠죠? 이를 오버플로(overflow)라고 합니다.

    • @_Heart_777
      @_Heart_777 2 года назад +1

      @@대멀쌤 감사합니다. 하나만 더 여쭤보겠습니다ㅠㅠ
      예를들어 첫번째 문제에서 중간값이 1100이 나왔는데 이게 2의보수끼리 더한거나 마찬가지이니 2의보수값이고 다시 한 번 2의 보수를 취해서 나오는 1100이 부호와 크기(sign and magnutude)값인가요...? 제가 이해한 것이 맞는지 궁금합니다..

    • @대멀쌤
      @대멀쌤  2 года назад

      @@_Heart_777 거의 맞습니다.
      다만 중간결과 1100의 부호비트가 1(음수)이기때문에 2의보수를 취한다고 보시면 되겠습니다.
      질문은 많이 하셔도 좋습니다^^

    • @_Heart_777
      @_Heart_777 2 года назад +1

      @@대멀쌤 2의 보수에서 음수값은 직관적으로 숫자를 알 수 없기에 이 숫자를 알아내기위해 2의 보수를 다시 취해서 조사한다고 생각하면 되는걸까요?!?!

    • @대멀쌤
      @대멀쌤  2 года назад

      @@_Heart_777 맞습니다^^
      하지만 어차피 연산은 cpu가 하는 것이므로 인간이 직관적으로 알 필요는 없겠죠?
      그냥 cpu의 이진연산 순서(알고리즘)라고 보시면 됩니다.

  • @안다미로-n2j
    @안다미로-n2j 2 года назад +1

    설명 감사합니다!
    1. 근데 2의 보수 완전 정복을 토대로 2-6 = -4 를 하면
    0010 - 0110 에서 6을 보수화하여 1010으로 만들고 이를 0010과 더하면 1100이 나오는데
    캐리가 없으니 다시 한번 보수화 한 다음에 마이너스를 붙이라 하였으니 -0100인데
    두 풀이의 차이가 무엇일까요?
    2. 14를 나타내는 1110과 -6을 나타내는 1110을 어떻게 구분해야 할까요? 아니면 계산할 때만 음수인 것을 인지한 상태에서만 1110을 쓰는 걸까요?

    • @대멀쌤
      @대멀쌤  2 года назад +2

      두 질문의 공통점은 부호가 있는 비트열의 연산이냐 아니냐의 차이네요.
      문제를 풀기 전에 제시된 비트열이 부호비트가 포함된 비트열인지 아닌지를 꼭 확인하시고 풀어보시면 됩니다.
      열공하세요!

  • @dkssudskdigpy476
    @dkssudskdigpy476 3 года назад +1

    선생님 2의 보수라는 개념은 음수에서만 적용되는 것인가요?

    • @대멀쌤
      @대멀쌤  3 года назад

      네 맞습니다.
      감산을 가산기로 해결하기 위한 계산(회로) 이라고 보시면 됩니다^^

    • @dkssudskdigpy476
      @dkssudskdigpy476 3 года назад +1

      @@대멀쌤 그렇다면 28을 8비트 메모리에 2의 보수로 저장하라는 문제의 답은 00011100이 아닌가요?ㅜㅜ

    • @대멀쌤
      @대멀쌤  3 года назад

      @@dkssudskdigpy476 시스템마다 다를 수 있겠지만 문제의 제한요소가 저게 전부라면 맞는것 같습니다.

    • @dkssudskdigpy476
      @dkssudskdigpy476 3 года назад +1

      @@대멀쌤 선생님, a - b = a + (b의 2의보수) 라는 것을 배웠습니다. 그런데 만약 a가 19 b 가 23 이라면 19 - 23 = 19 + (23 의 2의 보수)으로 계산할 수 있고, 19의 2의 보수 표현은 00010011이고, 23의 2의 보수 표현은 00010111이므로 둘의 합은 00101010 즉, 42가 나옵니다...... 제가 어느 부분에서 잘못 생각한 것 인가요?/ㅠㅠ

    • @대멀쌤
      @대멀쌤  3 года назад

      @@dkssudskdigpy476 -23의 부호와절대치 표현은 10010111 이고 -23의 2의 보수는
      11101001입니다.^^
      다시 계산해보세요~

  • @권소정-m5e
    @권소정-m5e 3 года назад +1

    선생님!
    1번 문제가 잘 이해가 되지 않습니다!
    함정이라고 하신 부분의 답이 1100인거까지는 이해가 되는데
    그 다음과정을 해도 1100이 나오면 상관없는거 아닌가요??????

    • @대멀쌤
      @대멀쌤  3 года назад

      답은 첫번째 1100이나 두번째 1100이나 같지만 풀이까지 모두 채점 대상이 된다면 두번째 1100까지 풀어야 정답입니다.
      그리고 이왕 배우는 거니까 확실하게 배우시라고 자세히 안내 드렸습니다.
      열공하세요!!

  • @서연-d3d
    @서연-d3d 3 года назад +3

    명강의 감사합니다. 그런데 선생님 1번문제 에서 1100을 2의 보수로 전환하는데 왜 1011 인가요? 1과 0을 바꾸니 0011 아닌가요? 이해가 안가요 ㅠㅠ

    • @대멀쌤
      @대멀쌤  3 года назад

      보수를 취할 때
      부호는 변하지 않고 그대로 둡니다^^

  • @user-zi1no3jd5m
    @user-zi1no3jd5m 3 года назад +1

    강의 감사히 잘봤습니다.
    궁금한게 있어서 댓글을 남깁니다.
    2의 보수 방식을 사용하는 2진수들에 대한 덧셈 결과를 구하라고 할때
    ex)01011+00111이면 두개다 2의 보수로바꾸어서 덧셈을 해야하는건가요 아님 그냥 더하면 되는건지 궁금하고
    인터넷이나 유튜브에 쳐도 2진수에 대한 무부호 수란게 안나오던데 무부호수가 뭔지 궁금합니다.

    • @대멀쌤
      @대멀쌤  3 года назад +1

      안녕하세요.
      저 위의 수식은 둘 항 다 2의보수 처리 없이 그냥 더하면 될 것 같습니다. 이유는 둘 다 양수이기 때문입니다.(부호비트가 모두 0)
      무부호수는 부호비트가 없는 비트로 생각되며 암묵적으로 모두 양수로 취급된다고 생각됩니다. 다만 양수-양수와 같이 뺄셈이 수행될 때 보수처리 가능할 것으로 판단됩니다.
      감사합니다. 주변에 많은 홍보 부탁드릴게요^^
      열공하세요!!

    • @user-zi1no3jd5m
      @user-zi1no3jd5m 3 года назад +1

      @@대멀쌤 댓글 감사합니다.

    • @user-zi1no3jd5m
      @user-zi1no3jd5m 3 года назад +1

      @@대멀쌤 각 진수에 대하여 무부호수로 해석할때 나타내는 10진수의 값을구하라할때 예시가)11001001이면 어떻게 구하면 좋을까요?

    • @대멀쌤
      @대멀쌤  3 года назад +1

      11001001이라면
      128, 64, 8, 1의 조합이니 201이네요.
      다른 풀이로는
      11001(25)의 2배에 또 2배, 그리고 또 2배한 결과에 1이 더 많은 것이니
      25×2×2×2+1 해서 201이 맞네요.
      얼마든지 질문댓글 올리세요.
      감사합니다^^
      열공하세요!!

    • @user-zi1no3jd5m
      @user-zi1no3jd5m 3 года назад +1

      @@대멀쌤 그냥 2진수니깐 다더한값이 무부호수로 나타내는 10진수값이되는건가요?
      그럼 201(10)이 답인건가요? 그리고 25에 x2x2x2+1를 곱하고 왜 더하는지도 궁금합니다

  • @이정아-z5s
    @이정아-z5s 3 года назад +3

    너무 좋은 강의 감사합니다!!!
    여쭤보고 싶은 것이 있는데요,
    제가 컴퓨터 정말 초보라서😂
    대멀쌤의 강의 중 2의 보수 설명하시는 동영상에서는 2진수가 부호포함이 안되어서
    10-13=-0011 이라고 표현하셨더라고요.
    그런데 이번 동영상에서는 맨 처음 비트가 부호를 포현한다는 것을 간주하시고 풀이해주셨는데
    문제만 보고 2진수가 부호를 포함하고 있는지 아닌지는 어떻게 아는것인가요?
    이런경우 문제에서 미리 제시를 해주는 것일까요?

    • @대멀쌤
      @대멀쌤  3 года назад +1

      본래는 문제에서 부호를 포함한 문제인지 아닌지를 명기(표시)해야 합니다.
      하지만 표시가 되어있지 않을 때에는 조용히 손을 들어 개별적으로 질문한 후 진행하시면 될 것 같아요.
      혹시 만약 이런식으로 문제가 나오면 자동적으로 부호가 포함된 것임을 인지하셔야 합니다.
      10-13을 십진수가 아닌 아래와 같은 이진수로 표현하고 있다면 부호를 포함한 것입니다.
      01010 - 11101
      10이나 13은 4비트로 표현 가능한 수치인데 5비트 이상으로 표현했거나 음수를 나타내는 비트의 최상위비트가 1인 경우에는 부호를 포함하고 있다고 판단해야 합니다. 이런 경우에도 손을 살짝 들어서 부호를 포함하고 있는 문제냐고 여쭈어보고 확인한 후 풀이하시면 정확할 것 같습니다.
      칭찬과 응원 댓글 감사합니다.
      앞으로도 질문 많이 해주세요~^^
      열공하세요!!

  • @옥주원-e4l
    @옥주원-e4l 3 года назад +1

    선생님 ㅜㅜ 1번문제 왜 -6이 1110이 되나요???ㅠㅠ -0110이라고쓰면 안되나요ㅠㅠ??

    • @대멀쌤
      @대멀쌤  3 года назад

      -6을 1010이라고 쓴거 말씀하시는 건가요?
      먼저 아래의 링크를 통해 2의 보수에 관한 제 강의 영상을 하나 보시고 오시면 더 좋을 것 같아요.
      ruclips.net/video/h2ktWG7vcJ4/видео.html
      그리고 컴퓨터에는 음수를 나타내는 기호(-)까지도 2진수로 표시해야하기 때문에 -0110으로 -6을 표현하는 것은 무리가 있어요. -6을 -0110으로 표기하는 것은 다분히 인간의 방식이며 해석이기 때문입니다.
      더 궁금하신 것이 있다면 계속 댓글 달아주세요^^

    • @옥주원-e4l
      @옥주원-e4l 3 года назад +1

      @@대멀쌤 제가 오늘 첨 공부해서 넘 헷갈리네욥 ㅠㅠ -6이 1110인거는 1이 음수표시고 110이 6이기 때문인거죠.??? 그러면 -3는 1011이되는건가욥..??? 혹시.. 컴퓨터에서말구 그냥 종이에 계산할때도 -0110 이렇게 표시하면 틀린건가욥 ??ㅠㅠ 죄송해요 넘 질문이 많죠ㅠㅠ...

    • @대멀쌤
      @대멀쌤  3 года назад

      @언j 제가 드린 링크 강의 다 보셨어요?
      언j 님이 사용하고 싶은 방식을 부호와절대치 방식이라고 해요. 그 방식으로 시작해서 2의 보수까지 변환할 수 있어야해요.
      아래 링크 강의를 공부해보세요!!
      ruclips.net/video/FFAZFIsqBrA/видео.html
      얼마든지 질문하세요^^

    • @옥주원-e4l
      @옥주원-e4l 3 года назад +1

      @@대멀쌤 영상 완죤 이해 됐어요!!
      선생님 그러면 2의보수 계산할때 먼저 음수인 부분 부호와절대치로 바꿔주고 그다음에 1의보수로 바꿔주고 더하기 1해서 2의보수로 바꿔준다음에 계산하면 되는건가용???

    • @대멀쌤
      @대멀쌤  3 года назад

      @@옥주원-e4l 정확합니다.
      열공하세요!!

  • @최윤선-z1l
    @최윤선-z1l 3 года назад +1

    선생님
    위의 영상속의 결과값을 2의보수를 다시 취하는 이유가 부호와 절댓치 값으로 나타내기 위해서 인가요?
    예를들어 3-10을 구할때 ,(부호 포함 5비트)
    00011+11010을 00011+10110=11001(2의 보수)
    11001값을 2의 보수시켜서 10111해서 부호와 절대치값으로 바꿔 답이 -7인건가요?

  • @forunforgettableyou3029
    @forunforgettableyou3029 3 года назад +1

    안녕하세요 잘 봤습니다...! 그럼 혹시 2의 보수 형식으로 표현된 곱셈 01101010 * 11110001 을 수행하여라 라는 문제가 있으면 어떻게 해야하나요?? ㅠㅠ 계속 푸는데도 답이 안 나와요...

    • @대멀쌤
      @대멀쌤  3 года назад +1

      여러 가지 방법이 가능한데요..
      1. 보수를 부호와절대치로 재보수화하여 2진수의 곱셈 실시(그 후 결과를 다시 2의 보수화?)
      2. 보수를 부호와절대치로 재보수화한 후 10진수로 만든 후 곱셈 실시하여 그 결과를 다시 부호와절대치로 만들고 다시 2의 보수화
      3. 문제 자체를
      의 2진수 곱셈을 수행하면 답이 나오지 않아요.
      무엇보다 위의 연산들을 실험적으로 진행해보려면 현재 제시된 문제의 최상위 비트가 부호비트이냐 아니냐가 중요합니다.
      그 부분을 알려주세요~^^

    • @forunforgettableyou3029
      @forunforgettableyou3029 3 года назад +1

      @@대멀쌤 (부호가 있는 수의 산술 연산) 이라고 되어있어요! 만약 11110001 의 경우에 2의 보수화를 풀려면 00001110 - 1을 해주면 되는 건가요...??

    • @대멀쌤
      @대멀쌤  3 года назад

      @@forunforgettableyou3029 11110001가 2의 보수이며, 이를 다시 재보수화로 부호와절대치로 만드시려면
      1. 1의 보수를 구하고 +1한다.
      2. -1하고 1의 보수를 구한다.
      위 두 가지 방법 중 한 가지를 선택하셔서 하시면 되요.
      1번의 방법으로 풀어보면
      11110001을 1의 보수하면 부호비트는 그대로 두고 1을 0으로, 0을 1로 반전하는 것이니
      10001110이 될 거에요. 여기에 +1하면
      10001111이 되니 십진수로는 -15가 되네요.

    • @forunforgettableyou3029
      @forunforgettableyou3029 3 года назад

      감사합니다!! 0010110 * 0001111 으로 했는데 안되네요ㅠㅠ 뭘 잘못한걸까요..! 맨 앞 숫자는 크기를 나타내는 비트니까 그거 빼고 곱해야 하는 거 아닌가요?

    • @대멀쌤
      @대멀쌤  3 года назад

      @@forunforgettableyou3029 01101010은 양수라서 보수취하지 않고 그냥 하셔야해요.
      즉, 106 곱하기 -15인 듯 합니다.

  • @이지환이-e1j
    @이지환이-e1j Год назад +1

    뭐야

  • @sunghyun2758
    @sunghyun2758 3 года назад

    "시험 이틀전.. 최고의 강의"

    • @대멀쌤
      @대멀쌤  3 года назад

      칭찬 감사합니다.
      만점!! 장학금!!

    • @sunghyun2758
      @sunghyun2758 3 года назад

      감사합니다 선생님 이 문제 나와도 안틀릴꺼같네요 문제 공통점까지 모든게 완벽했습니다...

    • @대멀쌤
      @대멀쌤  3 года назад +1

      @@sunghyun2758 주변에 많은 홍보 부탁드릴게요!!
      열공하세요!!^^

  • @홍지윤학생국제대학국
    @홍지윤학생국제대학국 4 года назад +1

    감사합니다

    • @대멀쌤
      @대멀쌤  4 года назад

      응원 감사합니다~
      열공하시고 시험도 잘 보세요~^^

  • @최혜영-y8p
    @최혜영-y8p 4 года назад +2

    감사합니다