Арифметические операции отлично работают на unsigned char
, хотя вы можете иногда удивляться тому, что арифметика в C всегда повышается до int
.
В C ++ Standard Library Library,
#include <numeric>
template<class InputIterator, class T>
T accumulate(InputIterator first, InputIterator last, T init);
Для расчета суммы unsigned char arr[]
вы можете использовать accumulate(arr, arr + sizeof(arr) / sizeof(arr[0]), 0)
.(0 здесь int
. Вы можете найти более подходящим использовать другой тип.)
Без STL это вычисляется тривиально с помощью цикла.
Среднее значение - это суммаделится на длину (sizeof(arr) / sizeof(arr[0])
).