3. 수의 표현과 연산
프로그램에서 쓰는 진수 : 10진수, 2진수, 8진수, 16진수
■ 10진수 (Decimal number)
◆ 일상 생활에서 수치를 표현하거나 계산할 때 0~9의 10개의 수
■ 2진수 (Binary number)
◆ 컴퓨터는 0, 1로 구성된 2진수를 사용
■ 8, 16진수 (Octal / Hexadecimal number)
◆ 2진법으로 표현하면 판독과 작성이 어렵고 번거로워 간단히 나타내기 위해 사용
10진법
■ 10진수 (Decimal number)
◆ 일상 생활에서 수치를 표현하거나 계산할 때 0~9의 10개의 수
■ 각 진법에서 사용되는 기호의 수를 밑수(base)
■ 10진법에서는 밑수가 10이 된다.
2진법
■ 0, 1의 2개의 숫자로 모든 수를 나타내는 방법
■ 비트(bit)
◆ 2진수 한 자리는 언제나 0 또는 1로만 나타내는데, 이를 비트(bit) 라고 한다.
◆ 2진수 네 자리(4비트)로 표현된 1010은? (아래쪽 참고)
8진법
■ 2진수로 표현하면, 10진수보다 많은 자리의 수가 필요하고 이해하기도 어렵다.
■ 2진수로 표현된 값을 간단하게 표현하는 방법으로 8진법을 사용한다.
■ 8진법은 2진수의 세 자리를 한 묶음으로 하여 표현하는 것
■ 0부터 7까지 8개의 숫자를 사용하므로, 밑수는 8
16진법
■ 2진수로 표현된 값을 간단하게 나타내는 또 하나의 방법
■ 2진수 4자리를 한 묶음으로 표현한 것
■ 0~9까지 10개의 숫자와 A~F까지 6개의 기호가 사용되므로 밑수는 16이다.
0~9, 10 ... 98, 99, 100
10진수 일공(10), 일공공(100)으로 읽어야 한다.
0~9 (10진수의 밑수, 10개), 0~7 (8진수의 밑수, 8개), 0~15 (16진수의 밑수, 16개)
진수의 표시는 아래의 두 가지로 쓰인다.
(3)10 -> 3(10)
(1010)2 -> 1010(2)로 쓴다.
324(10) = (3 x 100) + (2 x 10) + (4 x 1)
= 3 x 10^2 + 2 x 10^1 + 4 x 10^0
1010(2) = 1 x 2^3 + 0 x 2^2 + 1 x 2^1 + 0 x 2^0 (가중치, 가중값을 적용한다라고 한다)
= 8 + 0 + 2 + 0
= 10 (10)
각 진법에서의 수의 표현(표 참고)
10진법(밑수 10) | 2진법(밑수 2) | 8진법(밑수 8) | 16진법(밑수 16) |
0 | 0 | 0 | 0 |
1 | 1 | 1 | 1 |
2 | 10 | 2 | 2 |
3 | 11 | 3 | 3 |
4 | 100 | 4 | 4 |
5 | 101 | 5 | 5 |
6 | 110 | 6 | 6 |
7 | 111 | 7 | 7 |
8 | 1000 | 10 | 8 |
9 | 1001 | 11 | 9 |
10 | 1010 | 12 | A |
11 | 1011 | 13 | B |
12 | 1100 | 14 | C |
13 | 1101 | 15 | D |
14 | 1110 | 16 | E |
15 | 1111 | 17 | F |
16 | 10000 | 20 | 10 |
한 자리 숫자로 표현하기 위해 A~F를 쓴다.
진수의 변환
2진수를 10진수로 변환
1101(2) -> 10진수로 표현
1101(2) = 1x2^3 + 1x2^2 + 0x2^1 + 2x1^0
= 8 + 4 + 0 + 1 = 13(10)
다음의 수를 10진수로 변환하라.
10101(2) = 1x2^4 + 0x2^3 + 1x2^2 + 0x2^1 + 1x2^0 = 16 + 0 + 4 + 0 + 1 = 21(10)
11011(2) = 1x2^4 + 1x2^3 + 0x2^2 + 1x2^1 + 1x2^0 = 16 + 8 + 0 + 2 + 1 = 27(10)
371(8) = 3x8^2 + 7x8^1 + 1x8^0 = 192 + 56 + 1 = 249(10)
145(8) = 1x8^2 + 4x8^1 + 5x8^0 = 64 + 32 + 5 = 101(10)
4AB(16) = 4x16^2 + 10x16^1 + 11x16^0 = 1024 + 160 + 11 = 1195(10)
AF(16) = 10x16^1 + 15x16^0 = 160 + 15 = 175(10)
거듭제곱 계산사이트 https://www.calculator.net/
10진수를 2, 8, 16진수로 변환
10진수를 바꿀 진수로 나눈다.
10진수 2진수로 변환 | ||
2)20 (10) 2)10 - 0 2)05 - 0 2)02 - 1 1 - 0 10100(2) |
2)17 (10) 2)08 - 1 2)04 - 0 2)02 - 0 1 - 0 10001(2) |
2)25 (10) 2)12 - 1 2)06 - 0 2)03 - 0 1 - 1 11001(2) |
10진수 8진수로 변환 | |
8)24 (10) 3 - 0 30(8)
|
8)128 (10) 8)16 - 0 2 - 0 200(8) |
10진수 16진수로 변환 | |
16)101 (10) 6 - 5 65(16) |
16)127 (10) 7 - F 7F(16) |
실수(정수+소수)의 진법변환
소수점이 있는 10진수를 2, 8, 16진수로의 변환은
◆ 정수부분은 해당 진수로 나누고
◆ 소수부분은 해당 진수로 곱한다.
0.625(10) -> 2진수로 변환
정수부분 : 0을 2로 나눈다 = 0(2)
0.625 |
0.25 |
0.5 |
==> 0.625(10) = 0.101 (2) 검산은 게시물 제일 아래쪽에 있음
11.6875 -> 2진수로 변환
정수부분 : 11을 2로 나눈다 = 1011(2)
소수부분 : 2로 계속 곱해서 소수부분이 0이 되면 올림수를 2진수의 소수점으로 한다 = .1011
0.6875 X 2 ------- 1.3750 |
0.375 X 2 ------- 0.75 |
0.75 X 2 ------- 1.50 |
0.5 X 2 ------- 1.0 |
변환값은 아래와 같다.
11.6875(10) = 1011.1011(2)
9.25 (10) -> 2진수로 변환
정수부분 : 2 나누어주 면 된다. 1001(2)
소수부분 : 소수부분이 0이 될때까지 2를 계속 곱해준다.
0.25 X 2 ----- 0.5 |
0.5 X 2 ----- 1.0 |
9.25(10) = 1001.01(2)
2진 소수를 10진수로 변환
0.101(2) -> 10진수로 변환
0.101(2) = 1x2^-1 + 0x2^-2 + 1x2^-3 = 1x(1/2^1) + 0x(1/2^2) + 1x(1/2^3) = 1/2 + 0 + 1/8 = 0.5 + 0 + 0.125 = 0.625
( 참고 : 2^-y = 1/2^y )
여담 ... )
비트 : 모든 신호에 대한 최소의 단위
메카니즘(기계) + 일렉트로닉스(전자)
기계를 움직이려 하니깐 전자나 전기가 필요하다.
기계를 움직이려 할때 불편한 부분이 있을때 기계파트에서 고친다.
서로 불편한 것이 있다.
이 두 부분을 알고 있는 사람이
수정이 쉬운쪽을 선택해서 작업하는 사람이
메가트로닉스 엔지니어다.
물리 수학... ===> 기계에서 , 전자에서 통신 통신에서 무선유선,,
'자동제어 > PC 제어' 카테고리의 다른 글
PC제어프로그램 3일차 - 문자 자료의 표현 외(20.05.07) (0) | 2020.06.17 |
---|---|
PC제어프로그램 3일차 - 진수의 연산, 뺄셈 (20.05.07) (0) | 2020.06.17 |
PC제어프로그램 2일차 - 마이크로프로세서 (200423) (0) | 2020.06.17 |
PC제어프로그램 1일차 (200417) (0) | 2020.06.17 |
PC제어프로그램 7일차 (20.05.28) - 기본코딩2 (0) | 2020.05.28 |