bc: Unterschied zwischen den Versionen

Aus Mikiwiki
Zur Navigation springen Zur Suche springen
 
(5 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
Der [[Shell-Befehl]] <b>bc</b> (basic calculator) beherrscht auf der Shell das [[Rechnen]] mit Fliesskommazahlen.
Der [[Shell-Befehl]] <b>bc</b> (basic calculator) beherrscht auf der Shell das [[Rechnen]] mit Fliesskommazahlen.
== Konzept ==
bc rechnet standardmässig im Dezimalsystem.
bc speichert alle Befehle in einer History, die mit Hilfe der Pfeiltasten angesehen werden kann.
Beim Dividieren treten bei bc Rundungsfehler auf wie bei allen Programmen, die mit einer festen Anzahl von Nachkommazahlen arbeiten. Die Berechnung von "1/3*3" ergibt "0.99999..." (mit so vielen Neunen wie Nachkommastellen verwendet werden), während der mathematisch gleiche Ausdruck "1/(3/3)" richtig den Wert "1" ergibt.
Für kompliziertere Aufgaben können aus der Programmiersprache [[C]] bekannte Kontrollstrukturen verwendet werden, darunter die [[for]]-Schleife.


== Syntax ==
== Syntax ==
Zu den möglichen Operatoren gehören dioe folgenden:


{| class=wiki
{| class=wiki
Zeile 14: Zeile 22:
| <tt>/</tt> || Division
| <tt>/</tt> || Division
|-
|-
| <tt>**</tt> || Exponential-Operator
| <tt>^</tt> || Exponential-Operator
|-
| <tt>%</tt> || Modulo-Operator, der den Rest bei der ganzzahligen Division berechnet.
|-
| <tt></tt> ||
|-
| <tt></tt> ||
|-
| <tt></tt> ||
|}
|}


== Verwendung ==
== Verwendung ==


=== Bash ===
Aufruf von bc zum Rechnen mit Ganzzahlen. Zum Beenden des Programms kann "quit" oder die Tastenkombination CTRL+D eingegeben werden.
 
$ <b>bc</b>
bc 1.06.95
Copyright 1991-1994, 1997, 1998, 2000, 2004, 2006 Free Software Foundation, Inc.
This is free software with ABSOLUTELY NO WARRANTY.
For details type `warranty'.
<b>(1.1+2)*2</b>
6.2
<b>1/2</b>
0
<b>quit</b>
 
Aufruf von bc zum Rechnen mit Fliesskommazahlen. Es wird standardmässig mit einer Genauigkeit von 20 Stellen hinter dem Komma gerechnet.
 
$ <b>bc -l</b>
bc 1.06.95
Copyright 1991-1994, 1997, 1998, 2000, 2004, 2006 Free Software Foundation, Inc.
This is free software with ABSOLUTELY NO WARRANTY.
For details type `warranty'.
<b>1/2</b>
.50000000000000000000
 
Eingabe mehrerer Aufgaben hintereinander.
 
<b>1.1+2; 3.1-2</b>
3.1
1.1


Rechnen mit ganzen Zahlen.
Setzen, Anzeigen und Verwendung von Variablen.


  $ <b>echo $((1+1))</b>
  <b>a=201; b=300</b>
  2
<b>a</b>
201
<b>b</b>
300
<b>a*b</b>
60300
<b>a+b</b>
501
<b>a + -b</b>
-99
<b>-a</b>
  -201


Rechnen mit Variablen.
Einstellen der Nachkommastellen im laufenden Betrieb.


  $ <b>a=4; b=5; echo $((a+b))</b>
<b>scale=2</b>
<b>1/2</b>
.50
<b>scale=23</b>
<b>1/2</b>
.50000000000000000000000
 
  $ <b>echo "scale=4; 2 /4" | bc -l</b>
.5000
 
Anzeige der Quadratwurzel (engl. square root).
 
<b>sqrt(144)</b>
12
 
Rechnen im Hexadezimalsystem (mit der Basisi 16) anstelle des standardmässigen Dezimalsystems und Zurückschalten ins Dezimalsystem.
 
<b>ibase</b>
10
<b>ibase=16</b>
<b>A</b>
10
<b>ibase=A</b>
<b>10</b>
10
 
Ausgabe im Hexadezimalsystem und Zurücksetzen der Ausgabe ins Dezimalsystem. Im Beispiel wird der hexadezimale Wert für den Wert "15" angezeigt.
 
<b>obase=16</b>
<b>15</b>
F
<b>obase=10</b>
<b>15</b>
15
 
Ausgabe der Quadratzahlen von 1 bis 3.
 
<b>[[for]] (i=1; i<=3; i++) print i^2,"\n";</b>
1
4
  9
  9


Ausgabe des Wertes für 2 hoch 16.
Weitergabe einer Aufgabe in der Bash mittels Pipe-Zeichen an bc.


  $ <b>echo $((2**16))</b>
  $ <b>echo "1/3" | bc -l</b>
  65536
.33333333333333333333
$ <b>a=2; b=3; x=$(echo "$a*$b" | bc -l); echo $x</b>
  6


Ausgabe des Modulowertes der Division von 5 durch 3. Das Ergebnis lautet 2, da bei der Division von 5 durch 3 der Rest 2 bleibt.
$ <b>echo "scale=2; 279964069 / 324540731" | bc</b>
.86


$ <b>echo $((5%3))</b>
== Weblinks ==
2


$ <b>echo $((1/3))</b>
{{Weblinks}}
0
{{url_dewikipedia|Basic_Calculator|Basic Calculator}}
{{Fuss}}




{{cat|Rechnen}}
{{cat|Rechnen}}
{{cat|Shell-Befehl}}
{{cat|Shell-Befehl}}

Aktuelle Version vom 2. Februar 2022, 16:04 Uhr

Der Shell-Befehl bc (basic calculator) beherrscht auf der Shell das Rechnen mit Fliesskommazahlen.

Konzept

bc rechnet standardmässig im Dezimalsystem.

bc speichert alle Befehle in einer History, die mit Hilfe der Pfeiltasten angesehen werden kann.

Beim Dividieren treten bei bc Rundungsfehler auf wie bei allen Programmen, die mit einer festen Anzahl von Nachkommazahlen arbeiten. Die Berechnung von "1/3*3" ergibt "0.99999..." (mit so vielen Neunen wie Nachkommastellen verwendet werden), während der mathematisch gleiche Ausdruck "1/(3/3)" richtig den Wert "1" ergibt.

Für kompliziertere Aufgaben können aus der Programmiersprache C bekannte Kontrollstrukturen verwendet werden, darunter die for-Schleife.

Syntax

+ Addition
- Subtraktion
* Multiplikation
/ Division
^ Exponential-Operator

Verwendung

Aufruf von bc zum Rechnen mit Ganzzahlen. Zum Beenden des Programms kann "quit" oder die Tastenkombination CTRL+D eingegeben werden.

$ bc
bc 1.06.95
Copyright 1991-1994, 1997, 1998, 2000, 2004, 2006 Free Software Foundation, Inc.
This is free software with ABSOLUTELY NO WARRANTY.
For details type `warranty'.
(1.1+2)*2
6.2
1/2
0
quit

Aufruf von bc zum Rechnen mit Fliesskommazahlen. Es wird standardmässig mit einer Genauigkeit von 20 Stellen hinter dem Komma gerechnet.

$ bc -l
bc 1.06.95
Copyright 1991-1994, 1997, 1998, 2000, 2004, 2006 Free Software Foundation, Inc.
This is free software with ABSOLUTELY NO WARRANTY.
For details type `warranty'. 
1/2
.50000000000000000000

Eingabe mehrerer Aufgaben hintereinander.

1.1+2; 3.1-2
3.1
1.1

Setzen, Anzeigen und Verwendung von Variablen.

a=201; b=300
a
201
b
300
a*b
60300
a+b
501
a + -b
-99
-a
-201

Einstellen der Nachkommastellen im laufenden Betrieb.

scale=2
1/2
.50
scale=23
1/2
.50000000000000000000000
$ echo "scale=4; 2 /4" | bc -l
.5000

Anzeige der Quadratwurzel (engl. square root).

sqrt(144)
12

Rechnen im Hexadezimalsystem (mit der Basisi 16) anstelle des standardmässigen Dezimalsystems und Zurückschalten ins Dezimalsystem.

ibase
10
ibase=16
A
10
ibase=A
10
10

Ausgabe im Hexadezimalsystem und Zurücksetzen der Ausgabe ins Dezimalsystem. Im Beispiel wird der hexadezimale Wert für den Wert "15" angezeigt.

obase=16
15
F
obase=10
15
15

Ausgabe der Quadratzahlen von 1 bis 3.

for (i=1; i<=3; i++) print i^2,"\n";
1
4
9

Weitergabe einer Aufgabe in der Bash mittels Pipe-Zeichen an bc.

$ echo "1/3" | bc -l
.33333333333333333333
$ a=2; b=3; x=$(echo "$a*$b" | bc -l); echo $x
6
$ echo "scale=2; 279964069 / 324540731" | bc
.86

Weblinks

Herausgeber Sprache Webseitentitel Anmerkungen
Wikipedia ger Basic Calculatorwbm Enzyklopädischer Artikel