본문 바로가기

Computer science/컴퓨터 구조론

Data종류

Data단위

nibble ,bit ,byte ,word  이렇게 4가지가 존재 합니다.  

nibble 4bit를 1nibble 라고 부르게 됩니다.
bit bit 는 Data단위에서 가장 작은 단위라고 볼 수 있습니다. 
byte 8bit를 우리는 1 byte라고 부르게 됩니다. 
word  cpu에서 취급하는 명령어나 데이터의 길이에 해당하는 수를 말 합니다. word에는 half word , fullword double word 이렇게 3가지가 존재 합니다. 

 

진법

2진법 0과 1로 숫자를 표현하는 수 체계를 말 한다. 
8진법 0부터 7까지의 숫자로 숫자와 문자를 표현하는 수 체계를 말 한다.
10진법 0부터 9까지의 문자로 숫자를 표현하는 수 체계를 말 한다.
16진법 0부터 9까지 a부터 f까지  문자로 수를 표현하는 수 체계를 말 한다. 

진법변환

2진법에서 10진법으로 수를 변경하는 방법은 

0 0 1 0 0 1 0 1

여기에서 1*2^0+0*2^1+1*2^2+0*2^3+0*2^4+1*2^5+0*2^6+0*2^7 이렇게 되어   37이 나오게 됩니다. 즉 쉽게 말 하하자면... n bit의 2진법  숫자를 10진법으로 변환을 하기 위해서는 (자리수의 값 2^(k-1))*(자리수에 맞는 값(0 또는 1)) 을 넣으면 됩니다.  예를 들어 임의로 8 bit 크기로 2진법의 숫자를 나타내면 

0 0 1 0 0 1 0 1
2^7 2^6 2^5 2^4 2^3 2^2 2^1 2^0

이런식으로 나타낼 수 있습니다.   즉 2진법에서 10진법으로 바꾸기 위해서는  각각 각자릿수*(0또는 1 각 자리수의 값) 을 구하여  더하면 된다. 

 

10진법에서 2진법으로 나타내는 방법은  반환 하려는 숫자를 2로 나누어

위와 같이 나누어 떨어지지 않을 때 까지 나눈 후 나머지를 화살표 순서(역순)으로 써 주면 됩니다. 즉 88은  1011000(2)

이렇게 쓸 수 있습니다. 

 

Complement[보수]

보수에는 1의보수와 2의 보수가 존재합니다.  1의 보수는 해당 비트에서 가장 큰 표현형을 형성하는데 보완관계에 있는 두 수의 관계를 말 합니다. 예를 들어 10진수에서 표현 가능한 표현형은 9 입니다. 이것을 이용하여 나타내면 a+b=99라고 가정을 할 때. a와 b는 보수관계에 있다고 합니다.   2의 보수는 1의 보수에 1을 더한 형태입니다.   우리는 보수를 이용하여 컴퓨터의 연산을 하게 됩니다. 컴퓨터는 -연산은 못 하고 + 연산 밖에 못합니다. 그래서 A-b를 하기 위해서는 

A+(-B)로 나타내게 됩니다. 

우리는 2진법에도 보수를 나타 낼 수 있습니다. 8비트( 1바이트)의 2진수가 존재한다고 가정을 하겠습니다.

0 0 0 0 1 0 0 1

9를 2진법으로 나타낸 것입니다. 우리는 최상위 비트(MSB)에 따라 양수인지 음수인지가 결정이 됩니다. 그럼 -9는

1 0 0 0 1 0 0 1

 이렇게 됩니다. 이것을 이용하여 9+(-9)를 해 보면 00001001+10001001 이렇게 됩니다. 이것을 계산 해 보면 

1 0 0 1 0 0 1 0

이러한 숫자가 나오게 됩니다. 여기에서 모순이 발생을 하게 됩니다 . 이것을 해결하기 위하여 1의 보수 2의 보수 라는 개념을 컴퓨터에서 쓰게 됩니다.  00001001을 1의 보수로 바꾸게 되면 0은 1로 1은 0으로 바꾸어 줍니다. 그러면 11110110이렇게 나오게 되고 여기에서 1을 더하면 2의 보수가 됩니다. 따라서 1의 보수는 11110111입니다. 이제 00001001 +11110111을 하게 되면 00000000이 나오게 됩니다. 

 

 

'Computer science > 컴퓨터 구조론' 카테고리의 다른 글

논리게이트  (0) 2021.01.23