You are on page 1of 3

Emacs下的计算器 - calc | Emacs中文网 http://emacser.com/calc.

htm

作者: yupeng

1 概述
2 打开计算器
3 基本运算
3.1 逆波兰表达式
3.2 基本运算符号
3.3 代数运算
4 数制转换
5 三角运算
5.1 逆波兰表达式下的运算符
5.2 在代数模式下的运算符
5.3 弧度制和角度制的转换
6 向量运算与矩阵运算
7 复制,删除,撤销
8 定义函数

1 概述

“Calc” 是 emacs 自带的一个计算器,提供了许多方便的数值计算功能,可以让你在不离开


emacs 的情况下进行计算。但 calc 与 gnome 环境下的 gcalctool 或者 windows 自带的计算器
不同,它不是一个掌上计算器的模拟程序,操作不像上述两个计算器那样直观,需要记忆一些指
令,相应的,提供的功能也更加强大了一些。

2 打开计算器

‘C-x * c’:打开计算器。
‘C-x * t’:打开计算器,同时也打开 calc 的在线帮助。

3 基本运算

3.1 逆波兰表达式

calc 按照逆波兰表达式的方式进行计算。比如,你要计算2+3的结果,要按照如下顺序在 calc 的


buffer 中输入:
2 <RET> 3 <RET> + (<RET> 表示回车)
假设,你当前输入了:
1 <RET> 2 <RET> 3 <RET>
然后,输入加号 ‘+’,那么 calc 将会计算 2+3 的结果, 并保持数字1不变,calc 的 buffer
中会剩下 1,5两个数字。此时,再次输入’+', calc 会计算 1+5 的结果,此时 calc 的 buffer
中只剩下一个数字 ‘6’。
很多时候,可以省略一个<RET>,比如计算2+3时,你可以省略第二个<RET>,只输入:
2 <RET> 3 +

3.2 基本运算符号

‘+’:加号
‘-’:减号
‘*’:乘号
‘/’:除号
‘%’:取余,比如6%5=1, 30%4=2
‘&’:取倒数
‘^’:幂运算,当然也可以用做开方运算,比如4^0.5=2

1 of 3 2010/6/8 16:41
Emacs下的计算器 - calc | Emacs中文网 http://emacser.com/calc.htm

3.3 代数运算

当我们只是想简单的对一系列数字进行代数运算时,使用逆波兰表达式不是很直观,因此, calc
提供了一个更加直接的指令:
‘ (就是分号旁边的那个按键)
比如,在 calc 中按“’”,然后输入算式:
(3^2 + 4^2) ^ 0.5
calc 会直接给出答案:5。

4 数制转换

在 calc 中使用指令d2,d8,d0,d6可以在2进制,8进制,10进制,16进制之间切换(d2 就是先


按’d',再按’2′,其他也以此类推)。calc 默认是使用10进制进行计算。当进入2进制,8进
制,16进制模式时,mode line上会给出’Bin’,’Otc’,’Hex’字样的提示,默认的10进制模
式是不会有任何提示的。当进入任何一种进制模式的时候,输入的数字都是以10进制模式输入的。
比如在16进制模式下,输入:
10 <RET>
此时,calc中显示的数字是’A',而不是16进制的10。
如果你想按照当前的进制输入数字,需要在键入数字前按‘#’,比如,在16进制模式下输入:
#10 <RET>
此时,calc中显示的数字就是16进制的10,而不是A。

5 三角运算

5.1 逆波兰表达式下的运算符

S:正弦
C:余弦
T:正切
比如,想计算30度角的正弦值,输入:
30 <RET> S(可以省略 <RET>)
calc 会给出答案:0.5

5.2 在代数模式下的运算符

sin:正弦
cos:余弦
tan:正切
比如,输入
’sin(30)2+cos(30)2
我这里的calc给出答案:
0.999999999999

5.3 弧度制和角度制的转换

m r:进入弧度制(mode line 上显示 Rad)


m d:进入角度制(mode line 上显示 Deg)

6 向量运算与矩阵运算

输入向量与矩阵的方法很简单。
比如,输入一个三维向量:
[ 1 <RET> 2 <RET> 3 <RET> ]
此时,calc 中就会显示:
[1, 2, 3]

2 of 3 2010/6/8 16:41
Emacs下的计算器 - calc | Emacs中文网 http://emacser.com/calc.htm

(实际上最后一个<RET>可以省略)
输入矩阵的方法与向量类似,比如,我们输入一个2×2的矩阵:
[ [ 1 <RET> 2 <RET> ] [ 3 <RET> 4 <RET> ] ]
此时, calc 中会显示:
[ [ 1, 2 ]
[ 3, 4 ] ]
calc中专门的矩阵运算法则我没有研究过,我自己平常会用到的,也就是矩阵求逆。只需输入一个
矩阵,然后按“&”就可以了(还记得“&”么?如果对数字使用“&”运算,就是求倒数,对于矩
阵,就是求逆)。

7 复制,删除,撤销

输入一个数字(或矩阵),然后按<RET>,可以复制该数字(或矩阵)到整个运算堆栈的最顶部。
Backspace 或 Del 可以删除运算堆栈最顶部的数字(或矩阵)。
用U或者C-_或者M-x calc-undo可以在计算器中执行撤销操作

8 定义函数

在 calc 中你可以定义自己的函数。定义函数的指令是:
Z F
比如,先输入一个公式:
‘a + 2b
然后键入:
Z F m
再回答几个 minibuffer 中提出的问题,就定义了一个以 ‘z m’为快捷键的函数了。
此时,再输入两个数字:
1 <RET> 2 <RET>
然后按:
z m
就会按照公式计算出1+2*2的结果,也就是5。

使用指令:
Z P
可以把函数保存到文件,这样在以后的 emacs 会话中都可以使用这个函数。
比如,输入:
Z P m
可以把刚才定义的函数’z m’保存到由变量 calc-settings-file 指定的文件中。以后每次进入
calc 时,保存在这只文件中的函数也会被自动加载。calc-settings-file 的默认值
是”~/.calc.el”,我通常喜欢把它挪到.emacs.d 里面:
?
View Code LISP

(setq calc-settings-file "~/.emacs.d/.calc.el")

标签:calc, Emacs, windows, 配色, 配色

相关日志

3 of 3 2010/6/8 16:41

You might also like