- GNU bc — калькулятор командной строки для Linux
- Возможности GNU bc
- Использование GNU bc
- Типы выражений
- Переключение между системами счисления ввода/вывода
- Точность
- Использование встроенных функций
- Другие возможности языка
- Неинтерактивное использование GNU bc
- 8 Best Free Linux Calculators (Updated 2019)
- Посоветуйте калькулятор
- How to Use bc as a Hex Calculator
- Method 1: Using bc to Convert Decimal and Hexadecimal Numbers
- Method 2: Converting Binary and Hexadecimal Numbers with the bc Hex Calculator
- Method 3: Using bc as a Full Hex Calculator
GNU bc — калькулятор командной строки для Linux
Оригинал: What is a good command-line calculator on Linux
Автор: Dan Nanni
Дата публикации: 21 октября 2014 года
Перевод: А. Кривошей
Дата перевода: октябрь 2015 г.
Любой современный дистрибутив Linux включает графический калькулятор. С другой стороны, если вашим обычным рабочим окружением является терминал, то вы скорее будете искать себе калькулятор, который бы работал в командной строке. В этой категории программ, по моему мнению, единоличным лидером является GNU bc (сокращение от «basic calculator»). Это очень мощная и полезная утилита.
Еще до наступления эры GNU, bc исторически был известным языком для вычислений, первая реализация которого относится к старым добрым временам Unix 70-х годов. Изначально bc был больше известен в качестве языка программирования с синтаксисом, похожим на C. Со временем оригинальный bc эволюционировал в POSIX bc, а затем и в GNU bc.
Возможности GNU bc
Сегодняшний GNU bc является результатом многочисленных усовершенствований предыдущих реализаций, и сегодня он представляет собой стандарт для всех главных дистрибутивов GNU/Linux. bc поддерживает стандартные арифметические операции с числами произвольной точности и различных систем счисления (двоичные, десятеричные, шестнадцатеричные).
Если вы знакомы с языком C, вы увидите, что в bc используются те же или похожие математические операторы. Среди поддерживаемых операций арифметические (+,-,*,/,%,++,—), сравнения ( ,==,!=, =), логические (!,&&,||), побитовые (&,|,^,
, >), составного присваивания (+=,-=,*=,/=,%=,&=,|=,^=,&&=,||=, >=). bc имеет много полезных встроенных функций, таких как извлечение квадратного корня, тригонометрические и обратные тригонометрические функции, логарифмы, экспонента и так далее.
Использование GNU bc
Возможности GNU bc как калькулятора командной строки практически неограничены. В этом руководстве я собираюсь описать самые популярные функции bc. Получить полную информацию о возможностях программы можно из официальной документации.
За исключением случая запуска ранее написанного скрипта, обычно bc используется в интерактивном режиме, где каждая строка, содержащая выражение или оператор, интерпретируется и выполняется на лету. Чтобы перейти в интерактивную сессию bc, введите приведенную ниже команду. Для выхода из сессии введите «quit» и нажмите Enter.
Во всех приведенных в данном руководстве примерах подразумевается, что они вводятся внутри сессии bc.
Типы выражений
Для расчета арифметического выражения просто введите выражение и нажмите Enter. Если хотите, можете сохранить промежуточный вариант в переменной, чтобы затем использовать его в других выражениях.
В пределах одной сессии bc сохраняет всю историю введенных строк. Для возврата к предыдущим выражениям используется курсорная клавиша со стрелкой вверх. Если вы хотите ограничить число строк, сохраняемых в истории, присвойте нужное вам число переменной по имени history. По умолчанию ее значение -1, что соответствует «unlimited».
Переключение между системами счисления ввода/вывода
Часто может потребоваться вводить числа и выводить на экран результаты в двоичном или шестнадцатеричном формате. Для этого bc позволяет определить систему счисления для ввода и вывода. Они хранятся в переменных ibase и obase соответственно. По умолчанию значение этих специальных переменных равно 10, а диапазон допустимых значений от 2 до 16 (или значения переменной окружения BC_BASE_MAX в случае obase). Все, что вам нужно для смены системы счисления — изменить значения ibase и obase. Например, ниже пример суммирования двух шестнадцатеричных/двоичных чисел:
Обратите внимание, что я задал сначала obase=16, затем ibase=16, а не наоборот. Если бы задал сначала ibase=16, то выражение obase=16 интерпретировалось бы уже в шестнадцатеричном формате (то есть мы присваивали бы obase значение 22 в десятеричной форме).
Точность
В bc точность чисел хранится в специальной переменной под названием scale (количество десятичных цифр после точки). По умолчанию ее значение равно 0, что соответствует хранению всех цифр результата. Вы можете изменить точность, присвоив перменной scale соответствующее значение.
Использование встроенных функций
Помимо простых арифметических операций GNU bc предлагает большой набор продвинутых математических функций, как встроенных, так и находящихся во внешней математической библиотеке. Для использования этих функций запустите bc с опцией «-l».
Ниже проиллюстрированы некоторые из этих встроенных функций.
Квадратный корень из N:
Синус от X (X в радианах):
Косинус от X (X в радианах):
Арктангенс от X (возвращаемое значение в радианах):
Натуральный логарифм от X:
Экспонента от X:
Другие возможности языка
GNU bc поддерживает простые операторы (например присваивание значения переменной, break, return), составные операторы (if, while, for loop), и функции, определенные пользователем. Я не буду детально описывать эти возможности, но вы легко можете научиться пользоваться ними из официального руководства. Ниже пример определения очень простой функции:
Неинтерактивное использование GNU bc
До сих пор мы использовали bc в интерактивном режиме. Однако достаточно часто он используется неинтерактивно, в скриптах оболочки. В этом случае вы можете направить ввод на bc с помощью команды echo, например:
В завершение можно сказать, что GNU bc — это очень мощный гибкий калькулятор командной строки, который соответствует самым высоким требованиям. Предустановленный во всех современных дистрибутивах Linux, bc может значительно упростить ваши задачи, не выходя из терминала.
Источник
8 Best Free Linux Calculators (Updated 2019)
One of the basic utilities supplied with any operating system is a desktop calculator. These are often simple utilities that are perfectly adequate for basic use. They typically include trigonometric functions, logarithms, factorials, parentheses and a memory function.
However, the calculators featured in this article are significantly more sophisticated with the ability to process difficult mathematical functions, to plot graphs in 2D and 3D, and much more.
The calculators also typically support the Reverse Polish notation (RPN). This is a postfix notation wherein every operator follows all of its operands. In other words, instead of pressing 6 + 8 and the enter key, in RPN you type in 6 8 +.
Occasionally, the calculator tool provided with an operating system did not engender any confidence. The classic example being the calculator shipped with Windows 3.1 which could not even reliably subtract two numbers. Rest assured, the calculators listed below are of precision quality.
To provide an insight into the quality of software that is available, we have compiled a list of 8 high quality Linux calculator tools. Hopefully, there will be something of interest for anyone who wants more functionality offered by simple calculators.
Here’s our verdict of the featured calculators.
Now, let’s explore the 8 calculator tools at hand. For each title we have compiled its own portal page, providing a screenshot of the software in action, a full description with an in-depth analysis of its features, together with links to relevant resources.
Calculators | |
---|---|
Qalculate! | Powerful and easy to use multi-purpose cross-platform desktop calculator |
SpeedCrunch | High precision and powerful desktop calculator |
Extcalc | Multifunctional scientific graphic calculator |
GMT | Desktop calculator, an educational tool in mathematics, and for research |
insect | High precision scientific calculator supporting physical units |
galculator | RPN and algebraic calculator |
rpCalc | Simple RPN calculator |
Nonpareil | High-Fidelity calculator simulator |
The chart was added to the article on 9 February 2019.
Источник
Посоветуйте калькулятор
Для debian 8, xfce. Не консольный, ни в коем случае.
Чё-то потыкался, нашёл xcalc, спрятанный в дебрях консоли, скачал galculator, но это всё не то. Хочу как в венде-7. Шоб и триллионы считал и по разрядам группировал и чтоб hex-bin и чтоб с отрицательными bin. Ну и до кучи (это какбэ мечта), чтоб популярные единицы измерения переводил.
Там можно выбирать режимы, кликнув на заголовок.
qalculate, очень навороченный, но всё по-английски.
Всё означенное и даже больше нашёл в mate-calculator. Не понял только, что за отрицательный bin, показывать отрицательное число в заданном количестве разрядов в обратном коде, что ли?
Гугл — лучший калькулятор. Даже
Ну и до кучи (это какбэ мечта), чтоб популярные единицы измерения переводил
Питон
Вроде mate-calculator такое умеет.
Всё означенное и даже больше нашёл в mate-calculator
не нашел mate-calculator в пакетной менеджере.
Не понял только, что за отрицательный bin
Это когда указываешь старший разряд для знаковых чисел.
Угу. Как впрочем и Яндекс. Но я хочу оффлайновый.
А wolfram alpha не подойдет?
Да, но мне там много чего не понравилось. Да не всё в нём есть.
Мне нужен просто калькулятор, как в венде )) наиболее близкий.
qalculate, очень навороченный, но всё по-английски.
Поставил. Навороченный, да. Но чёт больше вопросов, чем ответов. Как включить группировку тысячных не нашел, как вводить bin не нашел (при переключении на bin все цифры остаются — т.е. вводишь ты десятичные), как указать старший разряд для отрицательных не нашел. По-ходу нужно погрузиться в этот калькулятор, чтоб начать им пользоваться.
Как включить группировку тысячных не нашел
Это да. Группировка есть в KCalc, но в остальном он мало отличается от Galculator.
Mode/Number Base/Select Result and Expression Base или Ctrl+B, в появившемся окне можно выбрать систему счисления и для вводимых чисел, и для результатов.
В новых версиях автор переборщил с дизигном и пользоваться теперь невозможно.
Источник
How to Use bc as a Hex Calculator
Various Unix-like operating system implementations like Linux and pretty much anything that has the GNU suite includes the bc basic calculator language. Its syntax is very similar to the C programming language. You can use it as a hex calculator right from the command line, so you won’t ever need to download some hexadecimal or octal app for your phone again.
This is great news for developers and anyone working on some homework. You’ll need to open a terminal to do this though. Hold down Ctrl, Alt and T or search for the word terminal on the Ubuntu Unity Dash. You might want to start it from the Whisker or Applications menu under System Tools. Users of macOS can start a terminal from the Utilities folder or by clicking on the dock if it’s pinned. You can find bc on most Unix-like operating systems these days and not just in Linux.
Method 1: Using bc to Convert Decimal and Hexadecimal Numbers
Type echo ‘obase=16;127’ | bc to convert the number 127 to hexadecimal from regular base-10 numbers. Naturally, you can replace that with any whole number. The result you’ll get is 7F, and if you wanted to convert back to regular base-10 you could type echo ‘ibase=16;obase=A;7F’ | bc and push enter. It’s that simple and can be used anytime with any valid hex number as well. As it’s a valid Unix-style command, you could also incorporate this into any type of shell script. It’s easy to remember that you can use this from the command line at any moment you need to convert a number back and forth quickly.
Method 2: Converting Binary and Hexadecimal Numbers with the bc Hex Calculator
At the command prompt type echo ‘obase=16;ibase=2;111010001’ | bc to convert a binary number into a hex one. Push enter and you should get 1D1 as a reply. Naturally, you can fill in that binary line with any binary number that you needed converted at the time. Once again, too, the reverse is true and it’s possible to use the included hex calculator to convert a hex number into a binary one. Typing echo ‘obase=2;ibase=16;1D1’ | bc and pushing enter will you get your original number back, but you can replace 1D1 with other valid hex values.
If you use this often, then you’ll want to keep two points in mind. One is that letters inherent in hexadecimal numbers must always be upper case, because the bc software treats lower case letters as algebraic variables. The second is that all of these commands can be run by a regular user and you don’t need root access to do them on any modern version of Linux or Unix.
Method 3: Using bc as a Full Hex Calculator
You can also use the bc command as a hex calculator to perform arithmetic if you needed to. Most people won’t have this need, but those who are programmers might need to figure out the differences between two different locations in memory. This is also a really common question asked by those who are doing computer science homework for high school and college!
Let’s say you had one hex number that’s EE65522D and you wanted to subtract C3EFAF86 from it. You could type echo ‘ibase=16;EE65522D-C3EFAF86’ | bc and push enter to find the answer. If you’d prefer the answer be in hexadecimal, then you could try echo ‘obase=16;ibase=16;EE65522D-C3EFAF86’ | bc to solve it that way. Other arithmetic operations are allowed as well. For instance, echo ‘obase=16;ibase=16;EE65522D*C3EFAF86’ | bc would multiple the two values. You could of course use + as an operand for addition if you’d like. Using / for division doesn’t return a remainder; you’d need to use % for modulus in order to do that.
For instance, running echo ‘obase=16;ibase=16;EE65522D%C3EFAF86’ | bc returns a value of 2A75A2A7, because the quotient of that equation is 1 remainder 2A75A2A7 when run through a hex calculator. Run the / operand first and then the % operand to find both values.
Источник