How about: m = 10; d = 1; while ( val >= m ) { m *= 10; d++; } ... and not have a *divide* in there? Man, entering code on a cell phone sucks... Ingo Molnar <mingo@xxxxxxxxxx> wrote: > >* Borislav Petkov <bp@xxxxxxxxx> wrote: > >> @@ -2,6 +2,10 @@ int num_digits(int val) >> { >> int digits = 0; >> >> + /* Handle special case */ >> + if (!val) >> + return 1; >> + >> while (val) { >> val /= 10; >> digits++; > >Hm. I suspect this could then be written as: > >int num_digits(int val) >{ > int digits = 0; > > do { > val /= 10; > digits++; > } while (val); > > return digits; >} > >No ugly special case! :-) > >Thanks, > > Ingo -- Sent from my mobile phone. Please pardon brevity and lack of formatting. -- To unsubscribe from this list: send the line "unsubscribe linux-tip-commits" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html