Страница 1 из 1

Сумма элементов Массива

Добавлено: 28 мар 2016, 22:33
Doctor
По описанию из блока, на выходе должна быть сумма элементов. 
Массив состоит из 4 - х  байтов значение =  255 
В порт выводится непонятно что. Мне нужно было выводить эти 4 байта в UART.
[spoiler=Спойлер]
5587900.jpg
[/spoiler]
Почему 252?

Сумма элементов Массива

Добавлено: 29 мар 2016, 20:02
SirYorik
Doctor писал(а):Мне нужно было выводить эти 4 байта в UART.
блок "сумма элементов массива" задачу вывода 4х байт не решает.
он делает именно сумму, один байт

а вот 252 это косяк автора.
сумма 4х байтовых значений, почти всегда не влезет в байтовый же результат.
выход этого блока должен быть минимум long int. (остается непонятка, а если массив будет long int?)

можно проверить без ардуины.
взять вывод вашего примера в си, и скормить в code::blocks хоть.
тоже, что логично, получается FC
9927571.jpg
ps: unsigned char равно byte в wiring

Сумма элементов Массива

Добавлено: 29 мар 2016, 20:21
SirYorik
Изображение
можно калькулятором обойтись:

Сумма элементов Массива

Добавлено: 30 мар 2016, 20:25
dekorator
Это дубль темы. Оригинал на фруме - " Спросить знатоков. Автор сказал создать и тут, чтобы не забыть.
Идею самого блока он не разъяснил. Доисих пор не понятно, что должно получаться на выходе.
Если это просто сложение чисел типа 1+2=3, то смысла в этом блоке не вижу, потому как есть раздел математики.
Если наивыходе дожна была быть сумма т.е. количество байт в массиве, то этого на выходе нет и это баг.
Если от блока ожидалось что на выходе будет что-то типа стека но наоборот ( чтение или извлечение из стека ) то было бы вобще хорошо. Можно было-бы выводить массив в UART, без дополнительной обвязки.

Автор писал что исправит. Только не написал что. Видимо он один знает, что же там на самом деле дожно было работать.