Я программирую приложение, которое выполняет огромное количество операций, и пытаюсь максимально оптимизировать его.
Я пытаюсь поместить деление (31 / сумма) вне test2, потому что таким образом я мог бы выполнить операцию только 1 раз за один l oop, в противном случае это делается 3 раза.
unsigned sum = 1234;
unsigned char test = 555;
unsigned char test2 = test * 31 / sum;
Цель будет
unsigned sum = 1234;
unsigned char test = 555;
unsigned division = 31 / sum;
unsigned char test2 = test * division;
Пример реального случая (упрощенно) в C:
for (int i = 0; i < N; i++)
{
unsigned a=0,b=0,c=0,d=0;
int aux;
for (int j = 0; j < M; j++)
{
aux = arr[j];
if (conditions)
a += aux;
if (conditions)
b += aux;
if (conditions)
c += aux;
if (conditions)
d += aux;
}
unsigned char ua = a, ub = b, uc = c, ud = d;
unsigned sum = ua + ub + uc + ud + 1;
unsigned_char_array_a[i] = ua * 31 / sum;
unsigned_char_array_b[i] = ub * 31 / sum;
unsigned_char_array_c[i] = uc * 31 / sum;
unsigned_char_array_d[i] = ud * 31 / sum;
}
Спасибо.