[컴퓨터 공학 기초 강의] 4강. 0과 1로 숫자를 표현하는 방법

Sdílet
Vložit
  • čas přidán 27. 08. 2024

Komentáře • 30

  • @HanbitMedia93
    @HanbitMedia93  Před 2 lety +3

    00:00 인트로
    00:48 정보 단위
    06:14 이진법 - 0과 1로 숫자 표현하기
    14:50 십육진법
    19:28 이진수 → 십육진수 변환
    20:13 십육진수 → 이진수 변환

    • @user-sh2iy1uc4l
      @user-sh2iy1uc4l Před 2 lety

      혹시 강의는 계속 나오는건가요??

    • @user-rs3vi2cv7i
      @user-rs3vi2cv7i Před 2 lety

      강의 업로드 일정이 어떻게 되는건지 알수있을까요?

  • @c94501738
    @c94501738 Před rokem +1

    진짜 궁금했던 건데 감사합니다🥺🥺

  • @user-xh3go6ms8w
    @user-xh3go6ms8w Před 6 měsíci +3

    선생님께서 이 댓글을 보실지는 모르겠지만, 정말 근본적인 의문입니다. CPU 내부에서 양수와 음수를 구별해줄 Flag라는 것이 존재한다면 그냥 십진수를 이진수로 나타낸 것에 플래그로 양수인지 음수인지 구별하면 되는데, 2의 보수법을 사용하는 이유가 무엇입니까? 양수와 음수를 구분하기 위해서 2의 보수법을 가져와 활용하는 것인데, 저런 플래그가 존재한다면 굳이 도입할 필요가 없는 거 아닌가요?

    • @None-nb6ez
      @None-nb6ez Před 6 měsíci

      덧셈 한번으로 하드웨어상 빼기 구현이 가능해요. 어느 수와 그 수의 10의 보수를 더하면 맨 앞자리를 제외하면 0이 됩니다.

    • @user-ic1ll3dp5u
      @user-ic1ll3dp5u Před 14 dny +1

      2의 보수법을 가져와 활용하는 이유는 음수가 무엇인지 정의하기 위함이지 않나요?
      X의 음수를 무엇으로 정의할 것인가. X의 2의 보수를 X의 음수로 정의한거 같습니다.
      제가 혼자 생각정리하기 위해 끄적여본 글입니다.
      ## 이진법
      binary라고 한다.
      이진법에 사용하는 숫자를 이진수라고 한다.
      십진법은 decimal이라고 한다.
      이진수에서 1000은 8이다.
      제대로 표기하면 1000이 아니라 ob1000이다.
      ob를 붙이면 이진수이다.
      이진수로 음수를 표현하는 것은 이야기할 게 많다.
      십진수에서는 양수에 -만 붙이면 음수가 된다.
      이진수에서는 0과 1로 음수를 표현해야한다.
      0과 1로 음수를 표현하는
      현대에서 가장 대표적인 방법은 2의 보수법이다
      이거는 뭐냐면 어떤 수를 그보다 큰 2^n에서 뺀 값이다.
      이렇게 구하는 게 더 쉽다.
      모든 비트를 반전시킨 후 1을 더하면 2의 보수를 얻을 수 있다.
      보수라는 건 무슨 뜻이냐
      보수"라는 용어는
      수학에서 원래 수에 더했을 때 특정 기준 수가 되는 값을 의미한다.
      2의 보수법에서 특정기준 수는 2의 거듭제곱 수이다.
      2의 보수법에서는 원래 수와 그 보수를 더했을 때 2^N이 된다.
      100을 기준으로 할 때 1의 보수는 99인거야.
      100을 기준으로 할 때 2의 보수는 98인거야.
      4비트 시스템을 기준으로 할 때 ob11의 음수를 구해보자
      4비트 시스템을 기준으로 한다는 건 4비트 시스템의 최대값이 1111이잖아.
      ob11은 0011이잖아.
      음수라는 건 2의 보수를 구하라는 거잖아.
      그러면 1111에서 0011을 빼고
      ### 1의 보수
      1의 보수라는 이름이 붙은 이유가 뭐냐
      보수라는 건 원래수에 더했을 때 특정 기준수가 되는 값을 의미한다.
      1의 보수에서 특정기준수는 모든비트가 1이 되는 값이다.
      X = 원래수 , Y = 1의 보수라고 하자.
      X + Y = 111111111...인거다.
      예를 들면
      0011의 1의 보수는 1100이다.
      왜냐하면 0011과 1100을 더하면 1111이 되기 때문이다.
      ### 2의 보수
      2의 보수라는 이름이 붙은 이유가 뭐냐
      보수라는 건 원래수에 더했을 때 특정 기준수가 되는 값을 의미한다.
      2의 보수에서 특정기준수는 최대 비트 수가 N일 때 2^N이 되는 값을 의미한다.(어렵지? 아래를 보면 쉽다)
      즉, 4비트시스템에서 특정기준수는 16이다. 10000이다. 근데 4비트 시스템이라면 이때 오버플로우가 일어나 0000이 될 것이다.
      X = 원래수, Y = 2의 보수라고 하자.
      X + Y = 10000.....(이진수로는 1뒤에 모든 비트가 0이 되는 수)
      예를 들면
      0011의 1의 보수는 1101이다.
      왜냐하면 0011과 1101을 더하면 10000이 되기 때문이다.
      2의 보수는 1의 보수에 1을 더한 값이다.

  • @where9810
    @where9810 Před 2 lety +2

    감사합니다.

  • @user-yq2qs7gs4o
    @user-yq2qs7gs4o Před rokem +2

    이진수→십육진수, 십육진수→이진수 반대 (첫번째가 십육진수→이진수고 두번째가 이진수→십육진수) 아닌가요?
    책에서도 첫번째 예를 십육진수를 이진수로 변환하기, 두번째를 이진수를 십육진수로 변환하기로 돼있는데 혹시나해서 댓글 남겨봅니다.

  • @user-xh3go6ms8w
    @user-xh3go6ms8w Před 6 měsíci +1

    그리고 2의 보수의 사전적 정의 '어떤 수를 그보다 큰 2^n에서 뺀 값' 에서 '어떤 수'도 이진수이고 '2^n'도 이진수인거 맞는 거죠?

    • @user-xh3go6ms8w
      @user-xh3go6ms8w Před 6 měsíci

      아 그 이진수로 표현된 숫자를 십진수로 보았을때 그 십진수보다 큰 2의 제곱수를 다시 이진수로 표현해서 기존의 수의 이진수를 자신보다 큰 2의 제곱수의 이진수에서 빼는 것을 2의 보수라고 하는군요.
      그러니깐 1011(2) 는 십진수 11을 의미하고 이것보다 큰 2의 제곱수는 2^4=16이며, 이 16을 다시 이진수로 표현한 10000에서 11의 이진수 1011을 뺀 즉 10000-1011= 0101 이군요.

  • @h6_dr
    @h6_dr Před rokem

    보수에 대한 개념에서 "2^k - a = b" 라는 설명보다는 "a + b = 2^k" 라는 설명이 더 어울릴 수 있을 것 같습니다.(정확히는 모름)

  • @tori599
    @tori599 Před 4 měsíci

    선생님 근데 음수로 표현할때 3을 음수로 표현할려면 4에서 3을 빼서 1 이나오면 그냥 1이지 왜 01이 되나요? 그리고 1011이 잇으면 음수가 0101인데 왜 또 0이 붙나요?

  • @tori599
    @tori599 Před 4 měsíci

    그러니까 100에서 011을 빼고싶으면 일단 011에 맨앞숫자를 제외하고 모두0인 100을 더하는거지. 그러면 100-011해서 01이 나오면 100에다가 그걸 더해서 101이 나오는거지. 근데 우리가 빼기위해서 100을 맘대로 더햇으니 가장 앞의 수는 무시하고 01만 가져가는거지~ 그리고 그게 100-011의 답이지. 근데 맨앞에 0은 그냥 아무때나 붙이는건가요? 근데 011을 뒤집으면 100이 되는데 앞에 0을 맘대로 붙이면 뒤집을때 수가 달라지자나요

  • @devlee-or4fr
    @devlee-or4fr Před rokem

    네트워크 강의는 안나오나요?

  • @user-wb6hx6fd7n
    @user-wb6hx6fd7n Před 5 měsíci

    21:00
    1101이 왜 D이죠? ㅜㅜ

  • @jung339
    @jung339 Před rokem

    16진수를 2진수로 변환할떄 16비트가 필요한거 아닌가요?? 헷갈리네

    • @kangminchul
      @kangminchul Před rokem +1

      4비트가 필요합니다. 4비트로 16개의 수를 표현할 수 있기 때문입니다.

  • @user-qg5cq2vy2k
    @user-qg5cq2vy2k Před rokem +1

    100에서 11을 빼면 어떤 원리로 01이 나오는 건가요? 아무리 생각해도 이해를 못하겠어서 설명부탁드립니다.

    • @kangminchul
      @kangminchul Před rokem

      100 - 011
      = 100 + (-011)
      = 100 + 101 (2의 보수)
      = 10 (자리수 넘어가는 것은 무시)
      그리고 A - B = C 일때 A = B + C 잖아요.
      반대로 01과 11을 더해보세요. 100이 나옵니다.

    • @user-qg5cq2vy2k
      @user-qg5cq2vy2k Před rokem

      @@kangminchul 11인데 앞에 011로 붙이는 건가요? 그리고 011에서 101로 바뀌는 부분 또한 설명부탁드리고 싶습니다.아직 개념이 안잡혀서 설명해주신 부분에 이해하기 어려운 부분들이 많이 따릅니다.

    • @kangminchul
      @kangminchul Před rokem

      @@user-qg5cq2vy2k 01과 1이 같고 005와 5가 같듯 0을 붙일 수 있습니다.
      그리고 011이 101로 바뀌는 과정은 2의 보수 표현으로 강의에서 자세히 설명하고 있으니,
      강의를 참고 바랍니다.
      (모든 0과 1을 뒤집고 1 더하기, 011 => 100 => 101)

    • @user-qg5cq2vy2k
      @user-qg5cq2vy2k Před rokem +1

      @@kangminchul 혹시 011에서 1을 두번씩 따로 더하면 101이 되는데 이렇게 생각해도 될까요?

    • @우이천
      @우이천 Před rokem +1

      11 + 1 = 100 이라는 것은 이해 하셨나요? 11의 다음의 이진수는 100입니다. 그래서 100 - 11 = 1는 자명합니다.

  • @wldnd2640
    @wldnd2640 Před rokem +1

    이진법과 16진법 배우기 싫음

    • @user-vg4hj1dg3p
      @user-vg4hj1dg3p Před rokem

      3 번만 노트에 적으면서 연습하다 보면 개 쉬움