<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Bc_%28Unix%29</id>
	<title>Bc (Unix) - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Bc_%28Unix%29"/>
	<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Bc_(Unix)&amp;action=history"/>
	<updated>2026-05-29T15:34:53Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Wikipedia (Deutsch) – Lokale Kopie</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://wiki-de.moshellshocker.dns64.de/index.php?title=Bc_(Unix)&amp;diff=367720&amp;oldid=prev</id>
		<title>imported&gt;Onkel Emma: den Programmnamen &#039;&#039;bc&#039;&#039; kursiv statt in code-Tags</title>
		<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Bc_(Unix)&amp;diff=367720&amp;oldid=prev"/>
		<updated>2022-03-23T13:10:08Z</updated>

		<summary type="html">&lt;p&gt;den Programmnamen &amp;#039;&amp;#039;bc&amp;#039;&amp;#039; kursiv statt in code-Tags&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{SEITENTITEL:bc (Unix)}}&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;bc&amp;#039;&amp;#039;&amp;#039; (kurz für &amp;#039;&amp;#039;basic calculator&amp;#039;&amp;#039;) ist eine numerische [[Programmiersprache]], die an die [[Syntax]] von [[C (Programmiersprache)|C]] angelehnt ist, sowie ein durch den [[Portable Operating System Interface|POSIX]]-Standard genormter [[Interpreter]], der diese Programmiersprache implementiert und dessen Vorhandensein in dem standardkonformen Betriebssystemen vorgeschrieben ist. Das herausstellende Merkmal von &amp;#039;&amp;#039;bc&amp;#039;&amp;#039; ist die Fähigkeit, mit [[Gleitkommazahl]]en (fast) beliebig großer [[Genauigkeit]] zu rechnen; die Grenze liegt je nach Version bei mindestens mehreren tausend Stellen, meist aber bei mehreren Millionen bis Milliarden. Die ersten Versionen wurden von [[Lorinda Cherry]] bei den [[Bell Laboratories|Bell Labs]] entwickelt.&lt;br /&gt;
&lt;br /&gt;
== Arbeitsweise ==&lt;br /&gt;
Der Interpreter folgt, vom POSIX-Standard so festgelegt,&amp;lt;ref name=&amp;quot;posixbc&amp;quot;&amp;gt;{{Internetquelle |url=http://pubs.opengroup.org/onlinepubs/9699919799/utilities/bc.html |titel=bc-Spezifikation des POSIX-Standards |sprache=en |abruf=2019-04-25}}&amp;lt;/ref&amp;gt; den üblichen Anforderungen an &amp;#039;&amp;#039;Utilities&amp;#039;&amp;#039;, den sogenannten &amp;#039;&amp;#039;Utility Syntax Guidelines&amp;#039;&amp;#039;.&amp;lt;ref name=&amp;quot;posixutil&amp;quot;&amp;gt;{{Internetquelle |url=http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap12.html#tag_12_02 |titel=Utility Syntax Guidelines |sprache=en |abruf=2019-04-25}}&amp;lt;/ref&amp;gt; Als Eingabe werden entweder (Text-)Dateien oder Input auf &amp;lt;code&amp;gt;&amp;lt;stdin&amp;gt;&amp;lt;/code&amp;gt; erwartet. Ziel der Ausgabe ist in jedem Fall &amp;lt;code&amp;gt;&amp;lt;stdout&amp;gt;&amp;lt;/code&amp;gt;, Fehlermeldungen gehen nach &amp;lt;code&amp;gt;&amp;lt;stderr&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;bc&amp;#039;&amp;#039; verwendet keine eventuell verfügbaren Gleitkommaeinheiten eines Rechners, sondern arbeitet intern nur mit [[Integer (Datentyp)|Integers]]; die Gleitkommafähigkeit wird per [[Software]] hergestellt. Nur so kann die Sprache diese hohen und von verfügbarer Hardware unabhängigen Genauigkeiten erreichen. Allerdings ist &amp;#039;&amp;#039;bc&amp;#039;&amp;#039; damit auch prinzipbedingt wesentlich langsamer als Software, die diese Einrichtungen benutzt.&lt;br /&gt;
&lt;br /&gt;
Nicht nur die zu erzielende Rechengenauigkeit kann festgelegt werden, &amp;#039;&amp;#039;bc&amp;#039;&amp;#039; ist in der Lage, mit beliebigen (Zahlen-)Basen zu arbeiten und diese ineinander umzurechnen. Bis zur Basis 16 wird die übliche Schreibweise verwendet und Ziffern jenseits der 9 durch die Buchstaben A bis F dargestellt. Die Ziffern in Basen größer 16 werden hingegen als aus mehreren (dezimalen) Einzelziffern bestehende Zahlen dargestellt, die durch ein Trennzeichen (meist ein &amp;#039;&amp;#039;Blank&amp;#039;&amp;#039;) getrennt sind. Dabei werden für die Basen 17-100 zweistellige, für die Basen 101-1000 dreistellige Dezimalzahlen und so fort verwendet. Siehe auch die Anwendungsbeispiele weiter unten.&lt;br /&gt;
&lt;br /&gt;
Die von POSIX standardisierte &amp;#039;&amp;#039;bc&amp;#039;&amp;#039;-Sprache ist in ihrer Struktur an C angelehnt und in demselben Dokument ebenfalls (in Form einer [[LL(k)-Grammatik|LL1-Grammatik]]) festgelegt (unter &amp;#039;&amp;#039;Extended Description&amp;#039;&amp;#039;).&amp;lt;ref name=&amp;quot;posixbc&amp;quot; /&amp;gt; Von Haus aus enthält &amp;#039;&amp;#039;bc&amp;#039;&amp;#039; nur einige Grundfunktionen wie etwa die [[Exponentialfunktion]], die [[Trigonometrische Funktion|trigonometrischen Funktionen]] und den [[Logarithmus#Natürlicher Logarithmus|natürlichen Logarithmus]]. Es können jedoch weitere Funktionen selbst definiert werden.&lt;br /&gt;
&lt;br /&gt;
== Varianten ==&lt;br /&gt;
=== GNU bc ===&lt;br /&gt;
[[GNU-Projekt|GNU]]-&amp;#039;&amp;#039;bc&amp;#039;&amp;#039; ist ein Nachbau von POSIX-&amp;#039;&amp;#039;bc&amp;#039;&amp;#039;, weist allerdings gegenüber dem Standard zahlreiche Änderungen auf. Es ist, anders als manche sonstigen Varianten, von Grund auf in C geschrieben und baut nicht auf [[dc (Unix)|dc]] auf. Die GNU-Variante erweitert die POSIX-Variante um zusätzliche Funktionen.&lt;br /&gt;
&lt;br /&gt;
Zu den Unterschieden zählen erweiterte Möglichkeiten zur Benennung von Variablen, Arrays und Funktionen, eine erweiterte [[Bedingte Anweisung und Verzweigung|if-Anweisung]] und anderes.&lt;br /&gt;
&lt;br /&gt;
== Beispiele ==&lt;br /&gt;
Die folgenden Beispiele sind mit einem POSIX-&amp;#039;&amp;#039;bc&amp;#039;&amp;#039; unter [[AIX]] (Version 7.1.5, TL 1) erzeugt. Ausgaben sind im Folgenden &amp;#039;&amp;#039;&amp;#039;fett&amp;#039;&amp;#039;&amp;#039; gesetzt:&lt;br /&gt;
&lt;br /&gt;
=== Berechnungen ===&lt;br /&gt;
Dieses Beispiel zeigt, wie erst eine Funktion definiert wird, die [[Rekursion|nonrekursiv]] die [[Fakultät (Mathematik)|Fakultät]] errechnet. Danach wird diese Funktion aufgerufen um &amp;lt;code&amp;gt;10!&amp;lt;/code&amp;gt; auszugeben. Das Beispiel ist der [[Manpage|man page]] für &amp;#039;&amp;#039;bc&amp;#039;&amp;#039; unter AIX entnommen.&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;user@system $&amp;#039;&amp;#039;&amp;#039; bc&lt;br /&gt;
 define f(n) {&lt;br /&gt;
 auto i, r;&lt;br /&gt;
 r = 1;&lt;br /&gt;
 for (i=2; i&amp;lt;=n; i++) r *= i;&lt;br /&gt;
 return (r);&lt;br /&gt;
 }&lt;br /&gt;
 f(10)&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;3628800&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
=== Wechsel und Umrechnung verschiedener Basen ===&lt;br /&gt;
&amp;#039;&amp;#039;bc&amp;#039;&amp;#039; unterscheidet zwischen der Basis für die Eingabe (&amp;#039;&amp;#039;ibase&amp;#039;&amp;#039;) und die Ausgabe (&amp;#039;&amp;#039;obase&amp;#039;&amp;#039;). Etwa lautet die Darstellung der Zahl &amp;#039;&amp;#039;1024&amp;#039;&amp;#039; (dezimal) zu den Basen 25 und 125:&lt;br /&gt;
&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;user@system $&amp;#039;&amp;#039;&amp;#039; bc&lt;br /&gt;
 obase=25&lt;br /&gt;
 1024&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039; 01 15 24&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
 obase=125&lt;br /&gt;
 1024&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039; 008 024&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
* {{man||bc|posix|arbitrary-precision arithmetic language}}&lt;br /&gt;
* {{man|1|bc|bsd|arbitrary-precision arithmetic language and calculator}}&lt;br /&gt;
* [http://www.gnu.org/software/bc/bc.html GNU bc] Beschreibung (englisch)&lt;br /&gt;
* [http://directory.fsf.org/gnu/bc.html Free Software Directory], Übersicht der Free Software Foundation zu bc (englisch)&lt;br /&gt;
* [http://sciencesoft.at/index.jsp?link=bc GNU bc] zum Ausprobieren&lt;br /&gt;
* {{Heise online |ID=6481093 |Titel=&amp;quot;He who touched it last, owned it&amp;quot;: Zum Tode der Unix-Pionierin Lorinda Cherry |Autor=Detlef Borchers |Datum=2022-02-17 |Abruf=2022-02-17 |Zitat=[[Lorinda Cherry]] war bereits in der ersten Unix-Version vom November 1971 mit dem Programm dc (Desk Calculator) vertreten. Damit begann ihre rege Tätigkeit.}}&lt;br /&gt;
&lt;br /&gt;
== Einzelnachweise ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Freie Mathematik-Software]]&lt;br /&gt;
[[Kategorie:Skriptsprache]]&lt;br /&gt;
[[Kategorie:Unix-Software]]&lt;br /&gt;
[[Kategorie:Unix-Betriebssystemkomponente]]&lt;/div&gt;</summary>
		<author><name>imported&gt;Onkel Emma</name></author>
	</entry>
</feed>