Javaの^演算子
^ Javaでは、排他的論理和( "xor")演算子です。
5^6例を見てみましょう:
(decimal)    (binary)
     5     =  101
     6     =  110
------------------ xor
     3     =  011
これはビット単位(JLS 15.22.1)および論理(JLS 15.22.2)xor の真理値表です。
^ | 0 1      ^ | F T
--+-----     --+-----
0 | 0 1      F | F T
1 | 1 0      T | T F
より簡単に言えば、xorを「これかそれとも、両方ではない!」と考えることもできます。
こちらもご覧ください
Javaのべき乗
整数の累乗に関しては、残念ながらJavaにはそのような演算子はありません。使用できますdouble Math.pow(double, double)(int必要に応じて結果をキャストします)。
従来のビットシフトトリックを使用して、2のべき乗を計算することもできます。つまり、の(1L << k)2のk乗ですk=0..63。
こちらもご覧ください
  マージノート:この回答は、指数関数を使用して文字列"8675309"をプログラミング演習としてint使用せずに文字列に変換することを意図した別の質問からマージさInteger.parseIntれました(^これから指数関数を示します)。OPの目的は、計算すること8*10^6 + 6*10^5 + 7*10^4 + 5*10^3 + 3*10^2 + 0*10^1 + 9*10^0 = 8675309でした。この回答の次の部分では、このタスクでは累乗は不要であると述べています。
ホーナーの計画
特定のニーズに対処すれば、実際にはさまざまな10の累乗を計算する必要はありません。単純なだけでなく効率的な、ホーナーのスキームと呼ばれるものを使用できます。
これは個人的な演習として行うため、Javaコードは提供しませんが、主なアイデアは次のとおりです。
8675309 = 8*10^6 + 6*10^5 + 7*10^4 + 5*10^3 + 3*10^2 + 0*10^1 + 9*10^0
        = (((((8*10 + 6)*10 + 7)*10 + 5)*10 + 3)*10 + 0)*10 + 9
最初は複雑に見えるかもしれませんが、実際はそうではありません。基本的に数字を左から右に読み、次の数字を追加する前に、これまでの結果に10を掛けます。
表形式で:
step   result  digit  result*10+digit
   1   init=0      8                8
   2        8      6               86
   3       86      7              867
   4      867      5             8675
   5     8675      3            86753
   6    86753      0           867530
   7   867530      9          8675309=final