ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 헥사(Hex)스트링을 바이트 배열에 넣기
    C++/사용자 정의 함수 2018. 12. 13. 16:49

    void string_to_bytearray(std::string str, unsigned char* &array, int& size) 

        int length = str.length(); 
        // 두자릿수로 만들기 
        if(length%2 == 1) 
        { 
            str = "0" + str; 
            length++; 
        } 

        // 출력 배열의 메모리 할당 
        array = new unsigned char[length/2]; 
        size = length/2; 

        std::stringstream sstr(str); 
        for(int i=0; i < size; i++) 
        { 
            char ch1, ch2; 
            sstr >> ch1 >> ch2; 
            int dig1, dig2; 
            if(isdigit(ch1)) dig1 = ch1 - '0'; 
            else if(ch1>='A' && ch1<='F') dig1 = ch1 - 'A' + 10; 
            else if(ch1>='a' && ch1<='f') dig1 = ch1 - 'a' + 10; 
            if(isdigit(ch2)) dig2 = ch2 - '0'; 
            else if(ch2>='A' && ch2<='F') dig2 = ch2 - 'A' + 10; 
            else if(ch2>='a' && ch2<='f') dig2 = ch2 - 'a' + 10; 
            array[i] = dig1*16 + dig2; 
        } 


    int main() 

        unsigned char* array = NULL; 
        int size; 
        string_to_bytearray("01A4FE",array,size); 

        // ... 
        
        delete [] array;    // 메모리 해제 
        return 0; 

    728x90

    댓글

Designed by Tistory.