Преобразовать sTring в byte?
- Войдите на сайт для отправки комментариев
Втр, 05/03/2019 - 08:45
Получаю от библиотеки MQTT текстовое (String) значение 00000101 в переменной payload. Как мне записать его в byte, что бы получилось число 5?
Вот такой код почему то не работает. В цикле for в массиве temp почему то только единицы...
if (topic == "/md/infobyte") { bool temp[8]; byte finish_byte; for (byte i = 0; i <= 7; i++){ if (payload.charAt(i)=="0") {temp[i]=0;} else {temp[i]=1;} bitWrite(finish_byte, i, temp[i]);} Serial.print(finish_byte); }
"0" - это не char, а char[]. При использовании char используются одинарные кавычки.
"0" - это не char, а char[]. При использовании char используются одинарные кавычки.
Это первая серия. Но сериал имеет и продолжение :)
Спасибо. Получилось.
Это первая серия. Но сериал имеет и продолжение :)
Мне кажется, что не сериал, а гораздо хуже - непрекращающийся День Сурка.
Немногим лучше
Получилось, но будут неожиданные, ниоткуда появляющиеся глюки. Думайте, почему.
не придумывается =( говорите, не таите знания ;)
Нули он тоже пихает... просто форматирование кода кривое.
Нули он тоже пихает... просто форматирование кода кривое.
Виноват, не заметил. Удаляю свой пост.
Я, конечно, могу ошибаться, но у меня сложилось впечатление, что шифтование знаковых переменных - это игра с огнём. К тому же тут есть шанс получить на выходе странное, если строка вдруг оказалась подлиннее, чем 8 chars.
если строка вдруг оказалась подлиннее, чем 8 chars.
16
да, uint здесь уместнее.
Я, конечно, могу ошибаться, но у меня сложилось впечатление, что шифтование знаковых переменных - это игра с огнём. К тому же тут есть шанс получить на выходе странное, если строка вдруг оказалась подлиннее, чем 8 chars.
Знаковые вправо шифтовать надо осторожно, а влево, памойму, пофик.
Знаковые вправо шифтовать надо осторожно, а влево, памойму, пофик.
Ну вот я и обратил внимание на result>>=1;