On 11/24/2015 06:11 PM, Peter Levart wrote:
byte r = (byte)((q * 100 - i) & 0x7F);
// byte allows the compiler to use byte wide addressing
opcodes
// which have smaller footprint and are potentially faster
// .. & 0x7F may additionally save negative bound check
buf[(byte)(--index & 0x7F)] = DigitOnes[r];
buf[(byte)(--index & 0x7F)] = DigitTens[r];
...but index can be large and overflow byte range. Imagine
concatenating into a String with target length > 127 ...
.. for addressing DigitOnes and DigitTens it is ok and might be faster,
as you say.
If DigitOnes and DigitTens are extended for 28 ignored zero slots, it
may save the upper bound check too.
Regards, Peter