티스토리 뷰

Reversing/Assembly

진법에 대하여 알아보자!

Heavy_Rain 2014. 10. 30. 08:47

 

 

2 진법(Binary)

 

컴퓨터는 내부의 정보를 0과 1을 이용하여 저장합니다.

사실 컴퓨터는 그리 대단하지 않기? 때문에 0과 1로 구성된 2진수 (binary)를 이용하여 모든 정보를 저장합니다.

0과 1은 전기적인 신호인 펄스의 유무를 이용합니다.

 



이런 식으로 전기적인 신호를 통해 0 또는 1을 이용해 모든 정보를 표시하게 됩니다.

이진수에서 각 자리 숫자를 비트(bit) 라고 표현합니다.

 

또한 2진수는 아래와 같이 표현할 수 있습니다.

  

10110(2)

2진수를 10진수로 변환 할 때에는 그 수의 위치에 2의 멱수로 계산 할 수 있습니다.

10110(2) ​ ​= 1x 2^4 + 0x2^3 + 1x2^2 + 1x2^1 + 0x2^0 

      = 16+4+2

      =  22

10 진법(Decimal)

10개의 숫자 0-9를 이용하여 수를 나타냅니다.

일반적으로 사용하는 숫자체계 이며 10진법 (decimal) 이라고 합니다.

10진수 5467 은 아래와 같이 표현할 수 있습니다.

 

10110(10)  5x10^3 + 4x10^2 + 6x10^1 + 7x10^0

16 진법(Hexadecimal)

16진수는 16을 기수로 한 표시기법으로, 자리수가 큰 2진수를 줄이기 위해 사용합니다.

16개의 숫자를 사용하기 때문에 9다음부터는 A  B C D E F 를 이용해 표시합니다.

A는 10진수 10과 동일한 값을 가지며, 차례대로 1씩 증가하여 F는 15와 동일한 값을 나타냅니다.

16진수는 아래와 같이 표시할 수 있습니다.

3CF5(16) 

​16진수를 10진수로 변환하는 과정은

3CF5(16) ​= 3x16^3 + 12x16^2 + 15x16^1 + 5x16^0

    = ​​12288 + 3072 + 240 + 5

    = ​15605

​의 순서대로 변환 할 수 있습니다.

 

'Reversing > Assembly' 카테고리의 다른 글

CPU Register (1) 범용레지스터  (0) 2014.10.30
댓글