비트처리에 대해서 조금만 읽어보시면 이해하기 쉬우실 겁니다.
http://www.winapi.co.kr/clec/cpp1/5-2-3.htm
초보탈출기 님이 쓰신 글 :
: 안녕하십니까
:
: 코드해석 좀 부탁드립니다.
: 달랑 물어보는 건 아니구요 .보다보다 지쳐서 도움 청합니다.
: 하기의 코드중 분석 부탁드립니다.
: #define COM2 1
: #define DATA_READY 0x0100
: #define TRUE 1
: #define FALSE 0
:
: #define SETTINGS ( 0xe3 | 0x00 | 0x00 | 0x00)
:
: int main(void)
: {
: int in, out, status, DONE = FALSE;
:
: bioscom(0, SETTINGS, COM2);
: cprintf("... BIOSCOM [ESC] to exit ...\n");
: while (!DONE)
: {
: status = bioscom(3, 0, COM2);
: if (status & DATA_READY)//이 부분 해석좀 부탁드립니다. 왜 연산하는건가요?
: if ((out = bioscom(2, 0, COM2) & 0x7F) != 0)//이부분두요 0x7F는 무엇이고 왜 &연산을 하였는지 또 "0"이 아니어야하는지 등등 상세하게 부탁드립니다.
:
: putch(out);
: if (kbhit())
: {
: if ((in = getch()) == '\x1B')
: DONE = TRUE;
: bioscom(1, in, COM2);
: }
: }
: return 0;
: }
|