\0
считаются завершающими строки
и в
char chr[16] = { 0x0E,0x1F,0xBA,0x0E,0x00,0xB4,0x09,0xCD,0x21,0xB8,0x01,0x4C,0xCD,0x21,0x57,0x69 };
ваш пятый персонаж - \0
.
Таким образом, строка строится только с первыми 4 символами.
Вы можете исправить это, используя конструктор из строки, где вы можете указать размер.
заменить const string str(chr);
на const string str(chr, 16);
также 0xB4
, 0xCD
и 0xB8
не помещаются в символ, так как они выше 128