GNU bc

bc is an arbitrary precision numeric processing language. Syntax is similar to C, but differs in many substantial areas. It supports interactive execution of statements. bc is a utility included in the POSIX P1003.2/D11 draft standard.

Since the POSIX document does not specify how bc must be implemented, this version does not use the historical method of having bc be a compiler for the dc calculator. This version has a single executable that both compiles the language and runs the resulting “byte code“. The byte code is not the dc language.


Source releases of bc can be found on the main GNU server (HTTPSHTTPFTP) and its mirrors; please use a mirror if possible.


An online manual for bc is available, as well as for dc.

You may also find more information about bc by running info bc or man bc, or by looking at /usr/share/doc/bc/, /usr/local/share/doc/bc/, or similar directories on your system. A brief summary is available by running bc --help.

Mailing lists

Announcements about bc and most other GNU software are made on <>.

To subscribe to any GNU mailing lists, please send an empty mail with a Subject: header of just “subscribe” to the relevant -request list. For example, to subscribe yourself to the GNU announcement list, you would send mail to <>. Or you can use the web interface.


bc is currently maintained by Phil Nelson.


bc is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version.