일상생활의 모든 정보는 아날로그로 되어있다.(연속적인 정수)
Digital Circuits 단계는 숫자의 추상화를 통해서 아날로그정보를 디지털 정보로 변환시킨다.(비연속적 정수)
ⓐ 개요
- babbage
> 0-9를 이용한 기계식 컴퓨터를 생성
> 25개의 low-gear를 이용해 25개의 숫자를 연산 가능하게 만들었다.(미완성)
- Georage Boole
> Boolean logic을 만들었다. ( 0과 1의 logic )
> 1(true, up), 0(false, down)
- babbage가 0-9를 이용해 컴퓨터 생성하는과정이 복잡하여 Boole의 Boolean logic을 도입
ⓑ Number System
- Decimal Numbers
> 10을 참조하여 표현되는 숫자.
> n - digit Decimal Number
>> 10^n개의 숫자를 표현가능하다.
>> range : 0 ~ 10^n -1
- Binary Numbers
> 0과 1로 이루어진 수
> 2를 기본으로하여 표현되는 숫자
> n - digit binary numbers
>> 2^n개의 숫자를 표현가능하다.
>> range : 0 ~ 2^n - 1
- Hexadecimal Numbers
> 0~9, A-F로 이루어진 수
> 16을 기본으로 하여 숫자를 표현을 한다.
> 긴 Binary Number를 표현하기 위해서 만들어 졌다.
> 16진수를 표현하는데 있어 숫자앞에 "0x"를 붙이는데, 이것은 숫자와 변수를 구별하기 위해서이다.
ⓒ Data Unit
- Byte = 8bit
- Nibble = 1/2Byte = 4bit
- Words = CPU가 처리하는 데이터 크기로 CPU에 따라서 다르다.
Digital Circuits 단계는 숫자의 추상화를 통해서 아날로그정보를 디지털 정보로 변환시킨다.(비연속적 정수)
ⓐ 개요
- babbage
> 0-9를 이용한 기계식 컴퓨터를 생성
> 25개의 low-gear를 이용해 25개의 숫자를 연산 가능하게 만들었다.(미완성)
- Georage Boole
> Boolean logic을 만들었다. ( 0과 1의 logic )
> 1(true, up), 0(false, down)
- babbage가 0-9를 이용해 컴퓨터 생성하는과정이 복잡하여 Boole의 Boolean logic을 도입
ⓑ Number System
- Decimal Numbers
> 10을 참조하여 표현되는 숫자.
> n - digit Decimal Number
>> 10^n개의 숫자를 표현가능하다.
>> range : 0 ~ 10^n -1
- Binary Numbers
> 0과 1로 이루어진 수
> 2를 기본으로하여 표현되는 숫자
> n - digit binary numbers
>> 2^n개의 숫자를 표현가능하다.
>> range : 0 ~ 2^n - 1
- Hexadecimal Numbers
> 0~9, A-F로 이루어진 수
> 16을 기본으로 하여 숫자를 표현을 한다.
> 긴 Binary Number를 표현하기 위해서 만들어 졌다.
> 16진수를 표현하는데 있어 숫자앞에 "0x"를 붙이는데, 이것은 숫자와 변수를 구별하기 위해서이다.
ⓒ Data Unit
- Byte = 8bit
- Nibble = 1/2Byte = 4bit
- Words = CPU가 처리하는 데이터 크기로 CPU에 따라서 다르다.
- msb (most significant bit), lsb (least significant bit)
- MSB (most significant Byte), LSB (least significant Byte)
>> msb는 sign bit(부호 비트)로 나중에 중요한 역할을 한다.
- 2^22 = 2^2 * 2^20 = 4Mega
- 2^32 = 4 * 2^30 = 4Giga
- 2^64 = 16 * 2^60 = 16Exa
ⓓ Two's Complement Numbers : 2의 보수
- Binary number에 부호를 넣기 위한 노력
> N bit의 길이가 있다면 N-1bit로 숫자를 표현하고 N번째에는 0과 1을 이용해 양과 음의 정수를 표현(1의보수)
ex) -7 > 7의 2진표현 : 0111(2) > sign bit을 음수 표현 > 1111(2) = -7
> 이 방법에 의해서 만들어진 음의 수는 일반적인 더하기 법칙에 위배가 된다.
> 0을 표현하는 방법이 2가지 존재 : 0000(2), 1000(2)
- 2의 보수를 이용한 음수 표현
> 위와 원리는 같지만 만드는 과정이 다르다.
ex) -3 > 3의 2진 표현 : 0011(2) > 0과 1의 reverse : 1100(2) > + 1 : 1101(2) = -3
> 2의 보수를 정수로 바꾸는 방법도 위와 같은 방법을 취하면 된다.
ex) 1101(2) > 0010(2) > 0011(2) = 3 > sign bit 확인 : -3
> N - digit Two's Complement Numbers
>> 2^n개의 숫자 표현 가능
>> range : -2^(n-1) ~ 2^(n-1) - 1
(range에서 음수쪽으로 하나가 더 많은 이유는 2의 보수 표현에서 2^(n-1)표현이 이중적이기 때문이다.)
ⓔ Overflow에 대한 extension하는 방법
- Sign extension
> msb(signbit)을 오른쪽으로 채워 넣는다.
ex1) 4bit 3 >> 8bit 3
3 = 0011(2) >> 00000011(2) = 3
ex2) 4bit -5 >> 8bit -5
-5 = 1011(2) >> 11111011(2) = -5
> Sign Number(2의 보수)에서 값이 변하지가 않는다.
- zero extension
> 새로 추가되는 bit를 0으로 채워 넣는다.
ex1) 4bit 11 >> 8bit 11
11 = 1011(2) >> 00001011(2) = 11
> unsigned number에서 사용 되며, sign number에서 사용시 값이 변할 소지가 존재한다.
- MSB (most significant Byte), LSB (least significant Byte)
>> msb는 sign bit(부호 비트)로 나중에 중요한 역할을 한다.
- 2^22 = 2^2 * 2^20 = 4Mega
- 2^32 = 4 * 2^30 = 4Giga
- 2^64 = 16 * 2^60 = 16Exa
ⓓ Two's Complement Numbers : 2의 보수
- Binary number에 부호를 넣기 위한 노력
> N bit의 길이가 있다면 N-1bit로 숫자를 표현하고 N번째에는 0과 1을 이용해 양과 음의 정수를 표현(1의보수)
ex) -7 > 7의 2진표현 : 0111(2) > sign bit을 음수 표현 > 1111(2) = -7
> 이 방법에 의해서 만들어진 음의 수는 일반적인 더하기 법칙에 위배가 된다.
> 0을 표현하는 방법이 2가지 존재 : 0000(2), 1000(2)
- 2의 보수를 이용한 음수 표현
> 위와 원리는 같지만 만드는 과정이 다르다.
ex) -3 > 3의 2진 표현 : 0011(2) > 0과 1의 reverse : 1100(2) > + 1 : 1101(2) = -3
> 2의 보수를 정수로 바꾸는 방법도 위와 같은 방법을 취하면 된다.
ex) 1101(2) > 0010(2) > 0011(2) = 3 > sign bit 확인 : -3
> N - digit Two's Complement Numbers
>> 2^n개의 숫자 표현 가능
>> range : -2^(n-1) ~ 2^(n-1) - 1
(range에서 음수쪽으로 하나가 더 많은 이유는 2의 보수 표현에서 2^(n-1)표현이 이중적이기 때문이다.)
ⓔ Overflow에 대한 extension하는 방법
- Sign extension
> msb(signbit)을 오른쪽으로 채워 넣는다.
ex1) 4bit 3 >> 8bit 3
3 = 0011(2) >> 00000011(2) = 3
ex2) 4bit -5 >> 8bit -5
-5 = 1011(2) >> 11111011(2) = -5
> Sign Number(2의 보수)에서 값이 변하지가 않는다.
- zero extension
> 새로 추가되는 bit를 0으로 채워 넣는다.
ex1) 4bit 11 >> 8bit 11
11 = 1011(2) >> 00001011(2) = 11
> unsigned number에서 사용 되며, sign number에서 사용시 값이 변할 소지가 존재한다.