본문 바로가기

자동제어(PLC,PC,로봇) & 전장설계 & CNC/PC 제어

PC제어프로그램 2일차 - 진수의 변환 (200423)

반응형

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/

 

Calculator.net: Free Online Calculators - Math, Fitness, Finance, Science

789+Back 456–Ans 123×M+ 0.EXP/M- ±RNDAC=MR Free Online Calculators

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
X 2
-------
1.250

0.25
X 2
-------
0.5

0.5
X 2
-------
1.0

==> 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 )

 


여담 ... )

 

비트 : 모든 신호에 대한 최소의 단위

 

메카니즘(기계) + 일렉트로닉스(전자)

기계를 움직이려 하니깐 전자나 전기가 필요하다.

기계를 움직이려 할때 불편한 부분이 있을때 기계파트에서 고친다.

서로 불편한 것이 있다.

이 두 부분을 알고 있는 사람이

수정이 쉬운쪽을 선택해서 작업하는 사람이

메가트로닉스 엔지니어다.

 

물리 수학... ===> 기계에서 , 전자에서 통신 통신에서 무선유선,,