Recommanded Free YOUTUBE Lecture: <% selectedImage[1] %>

Contents

6장 숫자를 표현하기

http://chortle.ccsu.edu/AssemblyTutorial/Chapter-06/ass06_1.html

0과1의 비트 패턴으로 다양한 것들을 표현할 수 있다. 심볼로 표현할 수 있는 어떤 것도 비트패턴으로 표현할 수 있다. 이장은 비트 패턴으로 정수(integer)를 어떻게 나타내는가에 대하여 공부 합니다.

  • 숫자와 숫자를 표현하기 Numbers and representations of numbers.
  • 숫자를 자리수로 표현하기 Positional representation of integers.
  • 10진수 표현법 Decimal representation.
  • 2진수 표현법 Binary representation.
  • 전환하기 Converting representations.
질문: 여러분이 제일 좋아하는 숫자는 무엇입니까?

숫자란 무엇인가? What is a Number?

http://chortle.ccsu.edu/AssemblyTutorial/Chapter-06/ass06_2.html 답: VII

일상적으로 말할때 숫자(number)라는 단어는 적어도 2가지 다른 의미를 가지고 있다. 한가지 의미는 개념적인 것이고 다른 의미는 그 개념을 어떻게 표현하는가 이다. 예를들어 "달걀 한줄의 달갈의 수"에 대해 생각해 보자.

여러분은 여기서 의미하는 달걀의 수가 무엇인지 알고 있다. 그 숫자를 종이에 써보자.

질문: 계란 1줄에는 몇개의 달걀이 있습니까?

숫자 표현하기 Representations

http://chortle.ccsu.edu/AssemblyTutorial/Chapter-06/ass06_3.html

답: attachment:dice12.gif

여러분이 종이에 계란 1줄이 몇개라고 쓴것이 바로 숫자를 표현한 것 입니다. 이것도 숫자를 표현하는 하나의 방식이다.

XII

여러분이 숫자를 표현하는데 이런것을 안써봤을지도 모르지만. 밑에것은 위에 12개라는 숫자를 다른 방식으로 표현한 것이다.

///// ///// //

아마도 여러분은 다음과 같은 방식으로 표현하였을 수 있다.

12

또는

twelve

또는

1100 (이진수)

질문: XII, ///// ///// //, 12가 각기 다른 숫자들 입니까?

숫자 표현하기 Representations

http://chortle.ccsu.edu/AssemblyTutorial/Chapter-06/ass06_4.html

답: 다른 숫자들이 아니다. 그렇지만 질문이 모호하였을 수 있다.

정확히 말하자면 XII과 ///// ///// //과 and 12가 똑같은 숫자를 다른 방식으로 표현하였다고 할 수 있다.

특정한 숫자는 여러 방식으로 표현될 수 있다. 그렇지만 개념적인 수는 항상 같은 숫자이다. 잉크나 연필이나 백묵이나 또는 컴퓨터의 글자로 다양한 방법을 써서 숫자를 표현할 수 있다. 일상적인 대화에서 "숫자를 쓴다"라는 것은 숫자를" 표현하는 것"을 의미한다. 예를 들어

12

를 숫자중에 하나라고 부를 수 있다. 일상대화에서 12라는 숫자를 "10진수체계에 의거해서 아라비아 숫자로 표현하여 나타낸 수들 중에 한가지 예"라고 엄밀하게 부르지는 않는다.

컴퓨터 과학에서는 사물을 표현하기위에 0과1의 비트 패턴을 사용한다. 컴퓨터 과학에서 사물의 차이점이 무엇인지 그리고 사물이 나타내는 것이 무엇인지 분명히 하는 것은 대단히 중요하다. 예를들어 컴퓨터에서 비트 패턴을 사용하여 정수를 여러 가지 방법으로 표현할 수 있다. 정수(integer)란 사람이 사용하는 개념이다. 메모리의 한 장소에 저장된 비트 패턴은 그러한 개념을 나타내는 것일 뿐이다.

질문: XII이 짝수 입니까 홀수 입니까?

자릿수에 따른 명명법 Positional Notation

http://chortle.ccsu.edu/AssemblyTutorial/Chapter-06/ass06_5.html

답: 짝수이다. XII라고 표현한 것은 숫자가 가지고 있는 특성을 바꾸지 않는다.

십진수는 숫자가 놓인 위치에 따라 수를 표현한다. 이것은 1,2,3,4,5,6,7,8,9,0과 같은 아라비아 숫자(digit)로 구성된 문자열(string)로 숫자를 표현하는 것이다. 문자열(string)에서 각각의 아라비아 숫자의 위치는 중요한 의미를 가지고 있다. 다음과 같이 아라비아 숫자가 놓일 수 있는 곳에 순서대로 칸을 만들어 보자.

____ 4번자리 __ 3번자리 ____ 2번자리 __ 1번자리 ______ 0번자리

위치로 숫자를 표현하는 것은 여러 가지 장점이 있다. 간결하나. 78이라고 쓰는것은 LXXIIX보다 짧고 간결하다. 계산이 용이하다. 로마 숫자 체계대로 LXXIIX를 XLIIV로 곱셈하는 것은 힘든 일이다.

질문: XLMCIIV가 숫자를 로마 숫자체계로 적절하게 표현한 것입니까?

10진수의 자릿수 Decimal Notation

http://chortle.ccsu.edu/AssemblyTutorial/Chapter-06/ass06_6.html 답: 적절한 표현이 아니다.

XLMCIIV 로마문자는 정수를 올바르게 나타낸 것이 아니다. 그렇지만 맞는지 틀린지 확인하는데 상당한 관찰이 필요했다. 10진수를 자릿수로 표현하는것이 훨씬 명확하다. 아마 여러분중에 대부분이 십진수의 자릿수 표현을 어떻게 하는지 알고 있을 것이다. (알고 계신 분은 다음 장으로 옮겨갑시다)

324 란: 3 × 100 + 2 × 10 + 4 × 1

다시말하면: 3 × 10^2 + 2 × 10^1 + 4 × 10^0

다음을 명심합시다:

B가 어떤수가 되었던 B^0 = 1.

자릿수로 표현하는 방법.

  1. 지수 B는 대개 양수이다.
2. B개의 아라비아숫자의 문자열은 0 부터 B-1 까지 표현할 수 있다. 123는라는 문자열은 3자리의 수 이다. 그래서 자리수는 0 부터 2까지가 사용된다. 3, 자리수는 B라는 정수의 거듭수에 해당한다. 0부터 시작해서 오른쪽에서 왼쪽으로 증가한다. 4. 각 자리에 놓인 숫자는 B라는 지수가 그 자리에 얼마나 많이 필요한가 보여주다. 3x10^2는 10^2자리에 10^2가 3개가 필요하다는 의미다.

질문: 표에서 ?를 채워 넣어보자.

7305 = 7 × 10^? + 3 × 10^? + 0 × 10^? + 5 × 10^?

10진수의 자릿수 Decimal Notation

http://chortle.ccsu.edu/AssemblyTutorial/Chapter-06/ass06_7.html

답: 7305 = 7 × 10^3 + 3 × 10^2 + 0 × 10^1 + 5 × 1^0

기수(base)가 10인 것을 표현할때(십진수 표현법), 십진수의 자릿수 명명법은 다음과 같다.

  1. 기수(base)는 10 이다.
2. 0,1,2,3,4,5,6,7,8,9와같이 10개의 아라비아 숫자(digit)를 쓴다. 3. 위치를 10의 거듭제곱으로 나타난다. 거듭수는 오른쪽에서 왼쪽으로 0부터 시작하여 증가 한다. 4. 아리비아 숫자(digit)는 거듭제곱수가 각자리에 몇개가 포함되어있는가를 보여준다.

줄여서 쓰는 방법은 다음과 같다:

attachment:sum.gif

어떤 정수도 자리수를 표현하는 기수(base)가 될 수 있다. 5도 기수(base)로써 사용될 수 있다.

질문: 빈칸을 채워 봅시다.

  1. The base is [ ].
2. There are [ ] "digits": [ ] ,[ ] , [ ] , [ ] , [ ] . 3. Positions correspond to integer powers of [ ] , starting with power [ ] at the rightmost digit, and increasing right to left. 4. The digit placed at a position shows how many times that power of [ ] is included in the number.

5진수를 쓰는법 Base Five Notation

http://chortle.ccsu.edu/AssemblyTutorial/Chapter-06/ass06_8.html 답:
  1. 기수는 5이다.
2. 5개의 아라비아 숫자를 쓴다: 0,1,2,3,4 3. 자릿수는 5를 정수로 거듭제곱한다. 0 부터 시작하여 오른쪽에서 왼쪽으로 증가한다. 4. 자릿수에 있는 아라비아숫자는 5의 거듭제곱수가 얼마나 많이 필요한가 보여준다.

기수(base) 5 는 10진수 표현의 10처럼 표현된다.

1x5^1+0x5^0

10진수 에서 10을 기수(base)로 썼던 것처럼 5진수에서 5를 기수로 사용한다. 이것은 5진수 숫자 421이다. 421=4x5^2+2x5^1+1x5^0

5라는 숫자는 5진수에서 사용할 수 없다는 것을 명심하자. 사실 421이라고 표현할 때는 다음과 같이써야 한다. 5진수에서는 10대신에 기수로 5를 사용한 것 뿐이다.

421=4x10^2+2x10^1+1x10^0

명확히 표현하기 위해서 십진수이외에 다른 기수를 사용할 때는 기수를 작은글자로 명시해준다. 421 <5>는 5진수를 사용하였다는 의미이다. 관례적으로 작은글자는 십진수로 쓴다. 역주-작은글자 대신에 괄호를 사용하여 작은 글자를 표현하였습니다.

질문:다음의 5진수를 10진수로 표현해 보자.

5진수10진수
0
1
2
3
4
10
11
12

표현을 달리하기 또는 진수 바꾸기 Changing Representations

http://chortle.ccsu.edu/AssemblyTutorial/Chapter-06/ass06_9.html

답:
5진수10진수
00
11
22
33
44
105
116
127

5진수를 10진수로 바꿔서 숫자를 표현할 수 있다. 다음과 같이 심볼을 바꿈으로써 5진수를 10진수로 전환할 수 있다. 괄호안의 기수 5 심볼을 10진수 형태로 바꿉니다. 그런후에 바꾼 10진수 기수에 따라 계산을 한다.

421 <5> = 4 × (10 <5>) ^2 + 2 × (10 <5>)^1 + 1 × (10 <5>)^0 10 진수 숫자 = 4 × (5 <10>)^2 + 2 × (5 <10>)^1 + 1 × (5 <10>)^0 10 진수 숫자 = 4 × 5^2 + 2 × 5^1 + 1 × 5^0 10 진수 숫자 = 4 × 25 + 2 × 5 + 1 × 1 10 진수 숫자 = 100 + 10 + 1 = 111 <10>

위에 과적은 5진수 기수를 10진수의 기수로 전환하는 과정을 보여준다. 위에서 보듯이 5진수나 10진수나 같은 숫자를 표현한 것이고 표현하는 방식만이 다른것이다. 문자 421 <5> 와 111 <10>은 같은 숫자를 표현한 것이다.

질문 : 5진수 102 <5>를 10진수로 바꾸어 보십시요.

7진수 Base Seven

http://chortle.ccsu.edu/AssemblyTutorial/Chapter-06/ass06_10.html 답:

102 <5> = 1 × (5 <10>)^2 + 0 × (5<10>)^1 + 2 × (5 <10>)^0 = 25<10> + 2<10> = 27<10>

다음의 7진수 예를 보자. 345 <7>

3×7^2 + 2×7^1 + 6×7^0

십진수로 전환 하기 위해서 7의 거듭제곱을 십진수로 쓰고 계산을 해보자.

3 × (7<10>)^2 + 2 × (7<10>)^1 + 6 × (7<10>)^0

3 × (49<10>) + 2 × (7<10>) + 6 × (1<10>)

147<10> + 14<10> + 6<10> = 167<10>

질문:

7진수 682<7>을 십진수로 전환해 보자.

비밀숫자 Secret Numbers

http://chortle.ccsu.edu/AssemblyTutorial/Chapter-06/ass06_11.html

질문 : 말도 안되는 질문 이었다. 8은 7진수로 표현할 수 없다.

숫자로 선택된 심볼들은 꼭 아라비아 숫자일 필요는 없습니다. 다음은 4진수를 표현한 것입니다:

'ㄱ'를 0으로 가정합시다. 'ㄴ'을 1로 가정합시다. 'ㄷ'를 2라고 가정합시다. 'ㄹ'을 3이라고 가정합시다.

다음은 위에 심볼로 표현한 4진수입니다 : ㄴㄹㄱㄷ

위에 심볼로 표현한 4진수를 자릿수 표현법으로 나타내어 봅시다. 이런한 시스템에서 기수는 ㄴㄱ을 사용합니다. 기수는 기수의 첫번째 거듭제곱을 한번 곱한것에 기수의 0번째 거듭제곱에 0을 곱한것을 더한다는 의미이다.

이와같이 자릿 수는 0,1,2,3,4,...와같은 아라비아 숫자를 사용하지 않고도 표현할 수 있습니다. 만일 기수(base)가 B라면 B를 숫자처럼 표현할 수 있는 심볼들이 필요할 뿐입니다.

질문: 'ㄴ ㄹ ㄱ ㄷ' 의 십진수 값은 무었입니까?

비트 패턴 bit patterns

http://chortle.ccsu.edu/AssemblyTutorial/Chapter-06/ass06_12.html

ㄴㄹㄱㄷ = ㄴ × (ㄴㄱ)^ㄹ + ㄹ × (ㄴㄱ)^ㄷ + ㄱ × (ㄴㄱ)^ㄴ + ㄷ × (ㄴㄱ)^ㄱ = 1 × 4^3 + 3 × 4^2 + 0 × 4^1 + 2 × 4^0 = 1 × 64 + 3 × 16 + 0 × 4 + 2 × 1 = 64 + 48 + 0 + 2 = 114

10110110110 같은 비트 패턴이 문자나 기계명령을 표현한 것 일지라도 대충 바이너리 숫자라고 부릅니다. 물론 비트 패턴은 숫자를 표현할 수 도 있습니다. 숫자를 표현할때는 2진수의 표현법을 사용합니다.

질문. 2진수 사용법입니다. 빈칸을 채워 보십시요.

  1. The base is [ ].
2. There are [ ] "digits":[ ], [ ]. 3. Positions correspond to integer powers of [ ], starting with power [ ] at the rightmost digit, and increasing right to left. 4. The digit placed at a position shows how many times that power of [ ] is included in the number.

2진수로 숫자를 표현하기 Representing Numbers using Base Two

http://chortle.ccsu.edu/AssemblyTutorial/Chapter-06/ass06_13.html

답:
  1. 기수(base)는 2이다.
2. 0과1 2개의 아라비아 숫자를 사용한다. 3. 각각의 자릿수는 2의 거듭제곱 숫자로 표현되고 0승의 거듭제곱부터 시작해서 오른쪽에서 왼쪽으로 증가한다. 4. 자릿수에 위치한 숫자는 2의 거듭제곱수가 그 숫자 만큼 포함되어 있다는 것을 보여준다.

위의 자릿수로 표현하는 규칙에 따라 2개의 아라비아 숫자를 사용한다. 0과 1이 주로 사용되고 우리는 이것을 비트(bit)라고 부르기도 한다. 비트(bit)는 바이너리 숫자(binary digit)의 줄임말이다. 이런 이진수 체계에서 2는 "10"으로 표현된다. "10"은 첫번째 2의 거듭제곱수와 0번째 2의 거듭제곱수에 0을 곱한것을 더한 것이다. 각자리 수는 2의 거듭제곱수로 표현한다. 이러한 것을 바이너리 시스템 또는 이진수 체계라고 한다. 다음 예를 살펴보자.

1011 <2> = 1 × (10 <2>)^(11<2>) + 0 × (10<2>)^(10<2>) + 1 × (10<2>)^(1<2>) + 1 × (10<2>)^(0<2>) = 1 × 2^3 + 0 × 2^2 + 1 × 2^1 + 1 × 2^0 = 1 × 8 + 0 × 4 + 1 × 2 + 1 × 1 = 8 + 0 + 2 + 1 = 11

위에서 첫번째 줄은 자리수를 포함하여 전체를 2진수로 표현 하였다. 기수와 거듭제곱수를 2진수로 표현 했습니다. 2번째 줄은 기수와 거듭제곱수를 10진수를 사용해서 표현했다. 나머지 줄도 10진수와 10진수 자릿수로 표현하여 10진수로 계산하였다.

질문 : 이진수 0110은 십진수로 무었입니까?

2의 거듭 제곱수 Powers of Two

http://chortle.ccsu.edu/AssemblyTutorial/Chapter-06/ass06_14.html

답:

0110 = 0 × 2^3 + 1 × 2^2 + 1 × 2^1 + 0 × 2^0 = 0 + 4 + 2 + 0 = 6

바이너리로 표현할 때 1과 0으로의 숫자로만 표현하기 때문에 특정한 2의 거듭제곱수는 합에 포함되기도 하고 포함되지 않을 수 도 있다. 바이너리 표현으로 전환하는 것을 표를 만들어 생각해 보자.

attachment:power2.JPG

역주: power of 2 2의 거듭제곱수, Decimal 십진수, include?포함여부?

0110 1001 이것은 8 비트의 바이너리 패턴이고 바이너리 자릿수 표현법으로 표현한 숫자이다. 1로 표현된 자릿수에 해당하는 십진수를 테이블에서 대입하고 계산함으로써 10진수로 전환할 수 있다.

질문: 0110 1001을 테이블에 맨마지막 줄에 대입해 보자. 그리고 그것에 해당하는 십진수를 계산해 보자.

6장 끝

http://chortle.ccsu.edu/AssemblyTutorial/Chapter-06/ass06_15.html

답:8 비트 패턴 0110 1001

attachment:power2answer.JPG

합계 = 64 + 32 + 8 + 1 = 105<10>

사용한 용어들

  • 수 vs 수를 표현하는것 Number vs. its representation
  • 자릿수 표현법 Positional number representation
  • 10진수 표현법 Decimal number representation
  • 기수를 바꾸어 표현하는 법 Changing bases of a representation
  • 바이너리 숫자를 표현하는 법 Binary number representation
  • 2의 거듭제곱수 표 Power of two table.
퀴즈를 꼭 풀어 봅시다.