计算机程序设计艺术 · 卷2:半数值算法(第3版)》即将由人民邮电出版社出版(见“图灵社区:《计算机程序设计艺术》出版说明”),《计算机程序设计艺术 · 卷2:半数值算法(英文版 · 第3版)》已经于2010年10月出版。这本书的 4.6.3 节“幂的计算”开头几页如下所示:




算法 A 对应的 Java 程序如下所示:

public static BigDecimal power(BigDecimal x, int n)
{ // n >= 0
  BigDecimal y = BigDecimal.ONE;
  for (BigDecimal z = x; ; z = z.multiply(z)) {
    if ((n & 1) != 0) y = y.multiply(z);
    if ((n >>= 1) == 0) break;
  }
  return y;
}