else return fixed<T,p>(f.value | (fixed<T,p>::one().value - 1), true);
else return fixed<T,p>(-(-f.value & ~(fixed<T,p>::one().value - 1)), true);
trunc(const fixed<T,p>& f){  if (f.value > 0) return fixed<T,p>(f.value & ~(fixed<T,p>::one().value - 1), true);  else return fixed<T,p>(f.value | (fixed<T,p>::one().value - 1), true);}