ImFe's study

어셈블리어 기초- 진법 체계 본문

FTZ

어셈블리어 기초- 진법 체계

ImFe 2020. 3. 25. 20:15

본 글은 FTZ를 풀기위해 필요한 어셈블리어의 기초를 다루고있습니다.
보완할 부분(내용추가, 맞춤법, 모호한 표현 등)이 있으면 댓글로 알려주시면 감사하겠습니다.


n진법이란? - n개로 나타낼 수 있는 수 체계
2진법은 2개의 수, 0과 1로 수를 표현합니다.

8진법은 8개의 수, 0,1,2,3,4,5,6,7로 수를 표현합니다.


10진법은 10개의 수, 0,1,2,3,4,5,6,7,8,9로 수를 표현합니다.


16진법은 10개의 수와 알파벳 6개, 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F로 수를 표현합니다.


2진법(Binary)
2진법 으로 표현된 1011(2) 로 설명하면 맨 아래 자릿수인 1은 2의0제곱이 오는 자리입니다.
자릿수가 위로 올라갈수록 2^1, 2^2, 2^3 ...이 됩니다.

자릿수가 1이면 2의 제곱이 존재한다, 자릿수가 0이면 2의 제곱이 존재하지 않는다고 볼수있습니다.
이를 10진법으로 변환하면

(2^3x1)        +       (2^2x0)       +     (2^1x1)     +     (2^0x1)  = 11
(넷째 자리)           (셋째 자리)          (둘째 자리)        (첫째 자리)

가 됩니다. 더 편하게 계산하는 방법은 맨 아래 자릿수부터 1, 2, 4, 8, 16..씩 숫자를 매긴후, 1이면 더해주고, 0이면 생략해주면 편하게 계산 할 수 있습니다.
또한 메모리에 있는 이진수 한 자리는 1bit라고 부릅니다.


8진법(octal)
8진법으로 표현된 7560(8)을 10진법으로 표현하는 방법은 맨 아랫자리 수 부터 8^0, 8^1, 8^2, ....로 시작하여 각 자리수와 곱해줍니다.
8^3x7  +  8^2x5 + 8^1x6 + 8^0x0 = 3952(10)

 


10진법(decimal)
10진법은 우리가 평소에 사용하는 수 체계입니다.
10진수를 2진수으로 변환하는 방법은

 

10진수 11을 2로 나눈 나머지를 2진수의 첫번째자리(맨 아래자릿수)에 오게 하고, 몫은 다시 2로 나누어 나머지를 2진수의 둘째자리에 오게하고, 또 몫을 다시 2로 나누어 세째자리에 오게하고 ... 이 과정을 반복해서 2 미만이 된 몫을 2진수의 맨 왼쪽(맨 윗 자릿수)에 놓으면 됩니다(몫이 1이되면 연산 끝).

그리고 맨 윗자릿수부터 맨 아래자릿수까지 순서대로 나열하면 10진수를 2진수로 변환한 수가 됩니다. (1011(2))


16진법(Hexadecimal)
16진수를 10진수로 표현하는 방법은 다른 각 진법에서의 10진법으로의 변환과 비슷합니다.
0~9부터의 수 이상부터는 A=10 B=11 C=12 D=13 E=14 F=15로 표기하는데.
예를들어 F15(16)은 (F x 16^2) + (1 x 16^1) + (5 x 16^0) = (F x 256 + 16 + 5) = 3861 입니다.



각 진수간의 변환은 추후 사용될때 설명하겠습니다.



'FTZ' 카테고리의 다른 글

FTZ level11풀이-1  (0) 2020.04.12
레지스터(register)란?  (0) 2020.04.07
FTZ level9 풀이  (0) 2020.02.12
FTZ training 6~10 정리  (0) 2020.01.02
FTZ training 1~5 정리  (0) 2020.01.02
Comments