Хотя я методом тыка раздуплил проблемку, которая подвигнула меня на оформление данной темы, на будущее очень хочется услышать комментарии спецов

. С Вашего позволения привожу код примера моих проблем.
Итак некоторая функция должна рассчитывать пилу по заданному углу. Сперва я написал все формулы влоб:
Код
const unsigned int N0=0b10000000000000;
const unsigned int Nmax=0b11111111111111;
unsigned long Wvariable2;
unsigned long sinus(unsigned int angle)
{
if (angle<=90)
{ Wvariable2=N0+angle*Nmax/180;}
if (angle>270)
{ Wvariable2 = (angle-270)*Nmax/180;}
if ((angle>90)&(angle<=270))
{ Wvariable2 = Nmax-(angle-90)*Nmax/180;}
return Wvariable2;}
Вроде по разрядной сетке противоречий нет. Но ничего не получилось

Далее я крутил крутил и интуитивно получил рабочий вариант:
Код
unsigned int sinus(unsigned int angle)
{
unsigned long Wvariable2;
unsigned int Wv1;
Wvariable2 = Nmax;
if (angle<=90)
{
Wvariable2 *= angle;
Wvariable2 = Wvariable2/180;
Wvariable2 += N0;
Wv1=Wvariable2;
}
if (angle>270)
{
Wvariable2 *= (angle-270);
Wv1= (Wvariable2/180);
}
if ((angle>90)&(angle<=270))
{
Wvariable2 *= (angle-90);
Wvariable2 = Wvariable2/180;
Wv1 = (Nmax-Wvariable2);
}
return Wv1;}
Как же правильно решать подобные задачки ?