컴퓨터가 메모리에 데이터를 저장하는 방법. 메모리에 Data가 적재되는 방법으로는 Little Endian 방식과 Big Endian 방식이 있다. Big Endian 방식. · 사람과 동일하게 앞에서부터 순차적으로 데이터를 저장하는 방식. · 모토롤라 관련 CPU, IBM or 썬마이크로시스템즈의 컴퓨터들이 사용하는 방식. · Java의 자바 가상 머신은 운영체제나 하드웨어 상관없이 항상 Big Endian을 사용. ex) 0x12345678 값을 저장한다면 하기와 같은 방식으로 메모리에 저장된다.
주소 0x0001 0x0002 0x0003 0x0004 Data 0x12 0x34 0x56 0x78
Little Endian 방식. · Big Endian 방식과 반대로 메모리에 역순으로 데이터를 저장하는 방식 · Intel 사의 칫셋과 호환이 되는 컴퓨터들이 사용하는 방식. ex) 0x12345678 값을 저장한다면 하기와 같은 방식으로 메모리에 저장된다. 주소 0x0001 0x0002 0x0003 0x0004 Data 0x78 0x56 0x34 0x12 현재 사용중인 컴퓨터에서 어떤 방식으로 저장되는지 확인해보기. <결과>
주소 0x002DF928 0X002DF929 0X002DF92A 0x002DF922B Data 0x78 0x56 0x34 0x12
cs
현재 사용중인 lenovo T530 노트북은 Little Endian 방식임을 알 수 있다.
(결과 주소는 PC마다 다르게 나올 수 있음.)
컴퓨터가 음수를 처리하는 방법.
컴퓨터는 첫 번째 비트를 부호 표현을 위해 따로 배정한다.
이를 부호 비트(signed bit)라 부르며 부호 비트가 0이면 양수, 1이면 음수를 나타내게 된다.
논리 회로가 음수를 표현하는 방법은 대표적으로 3가지가 있다.
1. 부호 절대값 방법.
부호 비트를 제외한 수를 양수 값으로 읽고, 마이너스를 붙이는 방법.
+3 = 00000011₂
-3 = 10000011₂
사람이 사용하기에는 편하지만, 이진수 계산이 안되기 때문에 컴퓨터에선 사용할 수 없다.
2. 1의 보수 방법.
양수 값의 비트를 반전시켜 음수를 표현하는 방법.
+3 = 00000011₂
-3 = 11111100₂
값이 0인 경우에는 00000000₂ 과 11111111₂ 두 값이 모두 0을 나타낼 수 있기 때문에 컴퓨터에선 사용하지 않는다.
3. 2의 보수 방법.
1의 보수 방법에서 1을 더하는 방법.
+3 = 00000011₂
-3 = 11111101₂
1의 보수 방법과 다르게 11111111₂이 -1 값을 의미하므로 0과 구분된다.
위와 같은 이유로 컴퓨터는 2의 보수 방법으로 음수를 표현한다.
'Programming > Knowledge' 카테고리의 다른 글
DLL (Dynamic Link Library) 1 (0) | 2017.05.26 |
---|