Dec
Hex
/ 0x
or 0X
Oct
/ 0o
Bin
/ 0b
많은 bit가 할당될수록 큰 range의 수를 표현(구분)할 수 있다.
- unsigned char: 8bits, 1byte
- unsigned short(int): 16bits, 2bytes
- unsigned long(int): 32bits, 4bytes
- unsigned int: 32bits, 4bytes
- unsigned long long(int): 64bits, 8bytes
64bit computer 기준 (OS도 64bit)
공학에서 magnitude는 크기 양 등을 나타내며 보통 0 이상의 양수를 value로 가진다.
위의 글을 보면 어렵게 느껴질테지만 사실 저 방식은 10진수를 2진수로 바꾸는 방법에서 으로 확장한 것이다.
planck's constant는 joule-seconds이고 avogadro's constant는 이다. 즉 physics 분야의 연산은 큰 수 또는 많이 작은 수를 다룬다.
BCD는 각 digir을 4bit의 binary로 표현하는 것이지만 4bit를 기억하기 위해 16진수를 중간에 도입했다.
23
=> 0010
0011
- sign은 1100
- sign은 1101
현재는 ASCII에 밀려 컴퓨터 내부적으로는 사용되지 않는다.(연산용이 아니라는 뜻임)
단 숫자를 표현하는 code로서 EBCDIC은 숫자를 disply 또는 input 또는 통신으로 주고받는 등의 경우 등의 차용되며 사용되는 경우가 아직도 존재한다.
Excess-3 code
- BCD code는 2진수 표현애 가깝고 encoding에 용이하나 complement에 대한 계산 및 처리가 까다로워서 이를 보완하기 위해 만든 code이다.
- BCD code에 +3을 해서 9의 보수를 매우 쉽게 얻을 수 있다.(1's complement를 하면 자동으로 9의 보수를 얻게 된다.)
Gray code
- BCD code에 인접하는 bit를 XOR로 연산하여 만들어진 코드
- 0에서 9까지 순환적으로 변할 때 각 과정마다 오직 한 비트만 변화되어 순환적으로 값이 입력될 경우 에러를 찾기 쉬우며 변경할 bit가 적다는 장점을 가진다.
- A/D변환, I/O device 등에 많이 사용된다.
- 2-bit Gray code는 quadrature encoding이라고 불리며 2개의 센서만으로 모터의 회전축이 얼마나 그리고 어느 방향으로 회전했는지와 더불어 회전 속도 등을 확인할 수 있어서 knob와 같은 장치 즉 제어에서도 사용 가능하다.
- 2개의 센서로 구성된 quadrature encoder의 경우 회전을 감지할 수 있다.
- 회전 resolution을 absolute position encoder로 만드려면 12개의 센서가 필요하다. ($2^{12} = 2^2 \times 1024 = 4096)
Decimal | BCD | Express-3 | Gray |
---|---|---|---|
0 | 0000 | 0011 | 0000 |
1 | 0001 | 0100 | 0001 |
2 | 0010 | 0101 | 0011 |
3 | 0011 | 0110 | 0010 |
4 | 0100 | 0111 | 0110 |
... | |||
9 | 1001 | 1100 | 1101 |
reference
1. CE mkdocs