Что-то я не пойму как их конвертировать имеем 2 переменных byte a = 101; // буква е byte b = 53; //буква 5 как их сложить чтоб получилось 229 (число е5 в шестнадцатиричной системе)? На самом деле надо сравнить массив из 16 символов (буквы в byte) с массивом из 8 элементов(byte в шестнадцатиричной системе)
Буквы к шестнадцатеричной записи отношения не имеют, поэтому ваш подход бессмысленный. А массивы сравниваются функцией memcmp.
Я надеялся, что понятно пояснил.. ну тогда к реальной задаче.. по mqtt получаю строку "28e5e0e405000074", соответственно в void callback(char* topic, byte* payload, unsigned int length) {, а именно в byte* payload имеем 50,56,101,53 и так далее, как это сравнить с адресом датчика, который имеет 40,229 и так далее ?
в любом языке разные типы по разному обрабатываются. шестнадцатеричная система счисления обычно берется из какой-нибудь сторонней библиотеки, потому что обычно все пользуются десятеричными (спасибо, кэп). если очень припрет, сделай функцию-конвертер из какого нибудь Integer в string. byte тебе тут явно не нужен, судя по описанию проблемы.