안녕하세요. 신랑 각시의 신랑입니다. 오늘은 일 하면서, 간만에 Endian 변환이 필요한 경우가 생겼습니다. Endian 이란, 컴퓨터에서 기본 타입 ( primitive time ) 을 다룰 때 byte 순서를 말합니다. 예를 들어, 4 byte integer 형을 다룰 때 Big endian 을 사용하는 컴퓨터는 바이트 순서를 좌측부터 계산합니다. (좌측이 큰 값이 됩니다.) 1을 표현하면, 0x00000001 으로 표현됩니다. Little endian 을 사용하는 컴퓨터는 바이트 순서를 우측부터 계산합니다. (우측이 큰 값이 됩니다.) 1을 표현하면, 0x01000000 으로 표현됩니다. 예전에 다루던 시스템 (HP_UX) 같은 경우에 Big endian 이여서 char 배열에 int 형을 그대로..
안녕하세요. 신랑각시의 신랑 입니다. 일하면서, 이진 값 배열 (binary stream) 을 printable string 으로 변환해야 할 일이 생겼습니다. 이런 경우에는 BCD 을 하여, 값을 변환하여 처리하곤 합니다. 예를 들면, 0x93, 0x17, 0x52, 0xF4 라는 이진 배열 ( 4 byte ) 이 있을 때, 이 값을 printable string 으로 변환하기 위하여 BCD encoding 을 하면, 0x39, 0x33, 0x31, 0x37, 0x35, 0x32, 0x46, 0x34 로 변환됩니다. 각각의 값은 ascii 표를 통하여 보면, 931752F4 로 print 됩니다. 4 bit 값 ( max 0xF ) 을 8 bit 로 표현하다 보니까, 길이가 2배로 늘어납니다. 그럼 C..
안녕하세요. 신랑 각시의 신랑 입니다. 저장된 데이터 중에서, 특정 값을 검색하는 데에는 여러 방법이 있을 수 있습니다. 그 중, for loop 으로 나올때까지 비교해서 찾거나, 혹은 STL 에서 제공하는 std::map 으로 find() 하는 것이 대표적인 방법일 것 입니다. 일하면서 문득 궁금했습니다. 데이터가 얼마나 많아야 std::map 이 for loop 보다 빠를까요? 산술적으로 평가할 수는 없습니다. 가독성을 생각한다면 for loop 보다는 STL 을 사용하는 편이 좋으니까요. 하지만, 성능이 신경쓰이는 프로그램을 만들 때에도 너무 고민없이 STL 을 사용하는 것은 아닐까 싶어서 테스트 해 봤습니다. 결과) 약, 100개 이하의 데이터에서는 for loop 이 빠른 것 같습니다. 주로 6..
안녕하세요. 신랑각시의 신랑 입니다. 일하면서 간혹 파일이 존재하는 디렉토리를 삭제해야 하는 경우가 생깁니다. 아래 주석 부분은, man page 를 참조하여 callback 함수의 parameter 별 의미를 확인하고자 적어 놓은 것 입니다. 실제 사용에서는 삭제해도 무방할 듯 합니다. (저는 항상 잊어 버리기 때문에 그냥 주석 처리 상태로 올립니다. ) #include #include #include #include #include #include #include #include int main(int argc, char * argv[]) { if(argc != 2) { std::cout
- Total
- Today
- Yesterday
- ssh key 만들기
- IPv6 server
- client socket
- endian 변환
- sftp 자동접속
- ftp 자동접속 스크립트
- 서버 경유
- remove
- ssh key
- 엔디안 변환
- 8byte endian 변환
- ftp 스크립트
- endian
- c++
- IPv6 client
- IPv6 IPv4 Dual client
- std:map
- BCD 변환
- IPv6
- ipv6 socket program
- forwarding
- short code
- ftp 자동접속
- IPv6 socket
- IPv4 and IPv6
- 8 byte 엔디안 변환
- IPv6 echo server
- 엔디안
- socket program
- FTW
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 |