티스토리 뷰
내 오늘날의 치욕을 잊지 않겠다.
TCP/UDP 통신, 또는 여러가지 다양한 상황에서 C언어는 DATA 자체를 BYTE 처리하려 보낼 것이다.
보통의 8bit 표현공간을 가진 통신클라이언트와 통신하게 될 경우 16진수를 이용하는데,
(8 bit, 2^8 = 256, 16진수의 최대값 0xFF 255)
이처럼, 8 bit와 16진수 는 직관적으로 딱 맞아 떨어진다.
(Why 8 bit? 8 bit = 1 byte, 즉 , 컴퓨터가 생각할 수 있는 최소단위는 1 byte로 보고.. 8 bit 이다....)
즉, 8bit 11110001 은 4자리씩 쪼갠다고 보았을때, 1111 0001 이다.
따라서 이것을 16진수로 표현하자면 0xF1 앞의 4자리와 뒤 4자리를 단순히 16진수 계산만 하면되는 것이다....
우선 서론은 이렇고,
본론으로 들어가자면
C에서 이처럼 BYTE 처리를 하려면.... 우선 unsigned char 타입을 이용한다. (unsigned char 타입의 표현공간은 0~255)
// Hex 로 표현된 "String"
char *hexString = "0FFF022E";
// Hex String이 실제 Hex 값으로 Byte처리되어 들어갈 공간
unsigned char byteTest[200];
// 초기화
memset(byteTest, 0x00, sizeof(byteTest));
// 물론 여기선 수동으로 이렇게 처리해주겠지만, Hex string에서 2개씩 잘라 0xFF..등으로 만드는건 본인이 자동으로 처리해야겠지?
byteTest[0] = 0x0F;
byteTest[1] = 0xFF;
byteTest[2] = 0x02;
byteTest[3] = 0x2E;
이렇게 해 주면 byteTest는 Hex String값이 된다.
'Computer > 컴파일언어' 카테고리의 다른 글
스레드 풀 (0) | 2015.12.30 |
---|---|
C TCP 소켓통신 ) 멀티 프로세스 vs 멀티 스레드 (0) | 2015.12.30 |
warning: assignment makes pointer from integer without a cast (0) | 2015.12.29 |
subscripted value is neither array nor pointer nor vector (0) | 2015.12.29 |
C 언어) byte란 (0) | 2015.12.29 |
- Total
- Today
- Yesterday
- GIT
- Kotlin
- BBC 가쉽
- xcode
- 점유율
- 깃헙
- php
- node.js
- C언어
- mysql
- 노드
- nodejs
- linux
- 스위프트
- Node
- git hub
- 리눅스
- IOS
- CentOS
- Android
- Swift
- 배열
- 손석희
- 서버
- Phaser
- 앵커브리핑
- 뉴스룸
- C
- Asterisk
- 안드로이드
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |