투케이2K

221. (AndroidStudio/android/java) hex string to byte array convert - 헥사 및 바이트 변환 본문

Android

221. (AndroidStudio/android/java) hex string to byte array convert - 헥사 및 바이트 변환

투케이2K 2021. 11. 23. 14:22

[개발 환경 설정]

개발 툴 : AndroidStudio

개발 언어 : java

 

[소스 코드]

 

    // TODO [Hex String convert byte array : 사용 방법 : hexStringToByteArray("0123abcd")]
    public static byte[] hexStringToByteArray(String data) {
        byte[] temp = new byte[data.length() / 2];
        for(int i = 0; i < data.length() / 2; ++i) {
            temp[i] = toByte(data.substring(i * 2, i * 2 + 2));
        }
        return temp;
    }
    public static byte toByte(String hexStr) {
        byte result = 0;
        String hex = hexStr.toUpperCase();
        for(int i = 0; i < hex.length(); ++i) {
            char c = hex.charAt(hex.length() - i - 1);
            byte b = toByte(c);
            result = (byte)(result | (b & 15) << i * 4);
        }
        return result;
    }
    private static byte toByte(char c) {
        switch(c) {
            case '0':
                return 0;
            case '1':
                return 1;
            case '2':
                return 2;
            case '3':
                return 3;
            case '4':
                return 4;
            case '5':
                return 5;
            case '6':
                return 6;
            case '7':
                return 7;
            case '8':
                return 8;
            case '9':
                return 9;
            case ':':
            case ';':
            case '<':
            case '=':
            case '>':
            case '?':
            case '@':
            default:
                return 0;
            case 'A':
                return 10;
            case 'B':
                return 11;
            case 'C':
                return 12;
            case 'D':
                return 13;
            case 'E':
                return 14;
            case 'F':
                return 15;
        }
    }




    // TODO [byte array convert Hex String : 사용 방법 : byteArrayToHexString(바이트 배열)]
    public static String byteArrayToHexString(byte buf[]) {
        String Hex_Value = "";
        for(int i=0; i<buf.length; i++) {
            //Hex_Value += String.format("0x%02x ", buf[i]); // [0xfg]
            //Hex_Value += String.format("%02x ", buf[i]); // [fg]

            //Hex_Value += String.format("0X%02X ", buf[i]); // [0XFG]
            Hex_Value += String.format("%02X ", buf[i]); // [FG]
        }
        return Hex_Value;
    }

 

반응형
Comments