Computer Security

#11 컴퓨터의 데이터 표현 본문

컴퓨터구조&어셈블리어

#11 컴퓨터의 데이터 표현

쿠리 Kuri 2022. 5. 25. 18:30

컴퓨터의 데이터 표현

-오늘날 대부분의 컴퓨터는 내부적으로 이진수를 이용하여 데이터를 표현하고 저장한다.

-이진 데이터를 사용하는 것이 디지털 회로로 구현하기 쉽고 효율적이기 때문이다.

-이진수 한 자리를 1비트(bit, binary digit)라 하며, 0과 1 두 개의 신호를 표현할 수 있다.

-8비트 데이터를 바이트(byte)라고 하며, 8086은 16비트 단위로 데이터를 처리하기 때문에 2바이트를 워드(word)라고 부른다.

-모든 데이터는 내부적으로 비트열(bitstream)이지만, 이 비트들의 나열(코딩, 즉 부호화)에 따라 특정한 유형들의 데이터를 표현할 수 있다.

-이렇게 나타낼 수 있는 정보의 유형들은 단순히 정수 데이터로부터 부동소수점, 문자 코드까지 다양하다.

 

 

기수법

-팔진법(Octal): 한 자리에 숫자 0부터 7을 사용하고, 그 이후(십진수 8)부터는 자리 올림이 발생한다.

-십육진법(Hexaadecimal): 한 자리에 숫자 0부터 F를 사용한다. 0부터 9까지의 값은 십진수와 마찬가지지만, 십진수 10부터 15는 각각 A,B,C,D,E,F, 한 자리로 나타낸다.

 

-컴퓨터는 내부적으로 이진수를 사용하지만, 표기 방식에 편의를 두기 위해 이진수 세자리를 묶어 팔진수 한 자리로 나타내거나 네자리를 묶어 십육진수 한 자리로 나타낸다.(1바이트 데이터는 십육진수 두 자리로 표현된다.)

 

 

정수의 표현: 양수와 음수

-컴퓨터 내부에서 이진수라는 이산적인 값을 처리하기 때문에 정수를 표현하는 방법은 다른 종류의 데이터에 비해 단순한 편이다.

-정수 데이터는 크게 부호를 갖지 않는 경우(unsigned)와 부호를 갖는 경우(signed)로 분류된다.

-같은 바이트 길이의 정수 데이터라고 하더라도, 부호를 가지는 경우는 부호를 표현하기 위해 추가적인 정보(부호비트)를 요구하기 때문에 표현 가능한 숫자 범위가 좁아진다.

-가령 부호가 없는 1바이트 정수가 0부터 255까지 256가지 수를 표현할 수 있다면, 부호가 있는 1바이트 정수는 -128부터 127까지 256가지 수를 표현할 수 있다.

-역사적으로 음수, 즉 부호 있는 수를 표현하기 위해 다양한 방법들이  고안되었지만, 오늘날 대부분의 컴퓨터들은 내부적으로 2의 보수법(2's complement)을 사용한다.

 

2의 보수법은 음수를 나타내기 위해 같은 절대값을 갖는 양수 값에 2의 보수를 취한다.

2의 보수를 취하기 위해서 기존의 비트들은 전부 반전시키고 1을 더한다.

음수에 2의 보수를 취하면 다시 양수를 구할 수 있다.

ex) 8비트 정수17, -17은 다음과 같이 나타낸다.

17 :  0001   1111

      1110    0000

+    0000    0001

ㅡㅡㅡㅡㅡㅡㅡㅡㅡ

-17:  1110   0001

 

 

문자: ASCII 코드

-컴퓨터 그 자체가 내부적으로 문자를 표현할 수는 없지만, 특정 문자에 해당하는 숫자 데이터를 나타낼 수는 있다.

-어떤 문자가 어떤 수에 대응되는지를 결정하는 것, 즉 문자의 코딩 방식은 컴퓨터 시스템을 설계하는 사람들의 몫이다.

-하지만, 컴퓨터마다 사용하는 대응 규칙이 달라지면, 서로 다른 컴퓨터 간의 데이터 통신이 불편할 것이다.

-비 일관성을 해결하기 위해 공통적으로 사용되는 문자 코드들이 존재한다.

-문자 코드는 문자를 표현 하기 위해 대응 체계에 따라 특정 문자를 해당하는 수치로 표현 해 놓은 것을 말한다.

-십진수를 나타내기 위해 사용되는 BCD부터 대형 컴퓨터에서 주로  사용되는 EBCDIC, ANSI에서 정의한 ASCII코드, 전세계 다양한 문자들을 표현하기 위해 사용되는 유니코드까지 다양하게 존재한다.

 

ASCII코드는 ANSI에서 정의한 7비트 문자 코드 체계이다.

1비트는 패리티 비트로 사용돼 각 문자마다 8비트를 사용한다.

MASM은 문자나 문자열 상수를 각 문자에 해당하는 ASCII 코드로 변환한다.

 

ex) 'A' -> 65   

    '0' -> 48

 

 

부동소수점: IEEE 754

-컴퓨터에서 실수를 나타내는 방식은 고정 소수점 방식과 부동 소수점 방식으로 나눠진다.

-대부분의 범용 컴퓨터용 프로세서들은 부동 소수점 유닛을 내장하고 있어서 부동 소수점 연산을 고속으로 처리 할 수 있다.

-전기 전자 기술자 협회(IEEE)는 부동 소수점 데이터를 정밀도에 따라 4바이트 크기를 갖는 단일 정밀도 부동 소수와 8바이트 크기를 갖는 배 정밀도 부동 소수 등으로 나눠 이에 대한 표준을 정의했다.

 

Comments