본문 바로가기

만들기 / making/sensing workshop

2진법 / 16진법 / ASCII

2진법 / 16진법 / ASCII

10진법 16진법 2진법을 넘나들면 
우리가 추상적으로 쓰는 언어들을 어떻게 기계가 알아들을 수 있는지 확실한 감을 잡을 수 있습니다.

1 과 0 = 5V 와 0V 이니까요 

아스키 테이블은 우리가 쓰는 문자들에 대한 1과 0의 조합의 약속을 보여주는 테이블입니다. ASCII 는 기관 이름으로 그 표준을 관장하고 있죠. 

이 표준이 있기때문에 여러분이 적당한 1과 0의 조합을 통신으로 보내면 받는쪽에서 무슨 문자인지 알아먹을 수 있는것입니다.


위의 사이트에서 각 문자에 해당하는 10진법수, 16진법수가 있는데 2진법으로 바꿔보면 그야말로 1과 0의 조합으로 나타나죠.

따라서 시리얼 통신이 일어날때 전선에서 전압이 변하는걸 보면 아스키 테이블대로 문자가 통신되는 것을 알 수 있습니다.
Q: 계산이고 뭐고 귀찮은데 간단하게 서로 변환하는 방법은 없나요?
A: 윈도우나 맥에서 계산기에서 보기 메뉴에서 공학용 (맥은 programmer) 으로 전환하시면 
Hex: 16진수 / Bin: 2진수 / Dec: 10진수로 서로 변환가능합니다.

Q: 각 진법의 C언어 코드내에서 표기는 어떻게 되나요?
A: 10진법: 그냥 숫자로 쓴다.
16진법: 0xFF, 0xAB 등과 같이 0x 를 앞에 써준다.
2진법: 0b1101111, 0b10000100 등과 같이 0b를 앞에 써준다.

예) 
8 = 0x08 = 0b00001001
15=0x0F = 0b00001111
128=0x80 = 0b10000000
255=0xFF = 0b11111111



'만들기 / making > sensing workshop' 카테고리의 다른 글

ATmega168 ADC  (0) 2009.08.31
bit 연산  (0) 2009.08.31
Arduino bootloader  (0) 2009.08.31
Arduino VS ATmega168 프로그래밍  (0) 2009.08.31
*Arduino 실행 문제  (0) 2009.08.31