Berechnung der Potenz in bash

8

Ich bin ziemlich neu im Bash-Scripting. Ich versuche, Berechnungen zu erarbeiten, und was ich gerade versuche, ist ein Skript zu schreiben, das mir erlaubt, einen Parameter einzugeben, und dass mein Skript die Potenz von 2 für diesen Parameter berechnet.

Also sag ich würde versuchen

%Vor%

Mein Skript würde 2^3=8

berechnen

Ich versuche es mit

%Vor%

aber das tut nichts. Gibt es einen Befehl, die Macht von etwas zu berechnen, von dem ich nichts weiß?

    
user2843457 13.04.2014, 15:43
quelle

4 Antworten

11

Der Energieoperator in bash ist **

Beispiel:

%Vor%     
user000001 13.04.2014, 15:45
quelle
5

Es ist erwähnenswert, dass Sie einen Überlauf beobachten, wenn das Ergebnis LONG_MAX überschreitet:

%Vor%

(Beobachten Sie das Ergebnis, wenn der Wert 2 63 -1 übersteigt)

Sie können stattdessen etwas verwenden, das eine arithmetische Berechnung mit beliebiger Genauigkeit erlaubt, da Sie dieses Limit möglicherweise ziemlich schnell erreichen, wenn Sie Rechenleistung haben. Zum Beispiel könnten Sie bc verwenden (und Sie könnten auch ^ verwenden!):

%Vor%     
devnull 13.04.2014 16:02
quelle
3

Nur zum Spaß können Sie auch bitweise Verschiebungen verwenden (natürlich funktioniert das nur für eine Basis mit einer Potenz von 2):

%Vor%

Stelle sicher, dass du devnulls Vorbehalte bezüglich Überläufen gelesen hast.

    
gniourf_gniourf 13.04.2014 16:29
quelle
1

Die anderen Antworten sind völlig korrekt, und wenn Sie mit ganzzahligen Werten arbeiten, stellen Sie die beste Möglichkeit für diese Art von Berechnung dar. Aber es ist erwähnenswert, dass Arithmetik nicht mit nicht ganzzahligen Werten zu tun hat .

Wenn Sie eine solche Ganzzahlarithmetik benötigen, können Sie das Dienstprogramm bc verwenden. Wenn Sie beispielsweise die 3. Potenz von 2.5 benötigen, können Sie dies tun:

%Vor%

Beachten Sie, dass die Variable scale builtin die Anzahl der Dezimalstellen angibt, in denen Berechnungen durchgeführt werden sollen.

    
Digital Trauma 13.04.2014 20:15
quelle

Tags und Links