幂运算

基本类型 / 数字 / 数学运算

number=8
power=3

#** is the power inside $(( ))
result1=$((number ** power))
#result1 is 512

#like 8 ** 3 % 100
result2=$((number ** power % 100))
#result2 is 12

#trap: bash numbers are 64-bit, a bigger power wraps around
wrapped=$((2 ** 64))
#wrapped is 0

#bc has ^ and no limit on the digits
result3=$(bc <<< "2 ^ 64")
#result3 is 18446744073709551616

#a fractional base goes to bc as well; scale keeps the digits
result4=$(bc <<< "scale=3; 1.5 ^ 3")
#result4 is 3.375

echo "result1 is $result1"
echo "result2 is $result2"
echo "wrapped is $wrapped"
echo "result3 is $result3"
echo "result4 is $result4"