首页 > 其他, 初级 > Emacs下的计算器 - calc

Emacs下的计算器 - calc

2010年5月5日 ahei 发表评论 阅读评论

作者: yupeng

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

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]
(实际上最后一个<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 里面:

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

分享家:Addthis中国
GD Star Rating
loading...
Emacs下的计算器 - calc, 8.6 out of 10 based on 9 ratings 标签:calc, Emacs, windows, 配色, 配色

相关日志

分类: 其他, 初级
  1. 2017年6月8日15:20 | #1

    Please let me know if you’re looking for a writer for
    your blog. You have some really good articles and I feel
    I would be a good asset. If you ever want to take some of
    the load off, I’d really like to write some articles
    for your blog in exchange for a link back to mine.
    Please shoot me an e-mail if interested. Kudos!

    [回复]

  2. 2017年6月19日16:35 | #2

    It’s truly very difficult in this busy life to listen news
    on TV, so I just use internet for that reason, and get
    the most recent information.

    [回复]

  3. 2017年9月2日22:39 | #3

    Mapping Workplace Attributes to OneLogin Attributes.

    [回复]

  4. 2017年9月4日09:17 | #4

    I read this piece of writing completely on the topic of the
    difference of hottest and previous technologies, it’s awesome article.

    [回复]

  5. 2017年9月5日02:30 | #5

    Hi there to every , as I am actually keen of reading this web site’s post to be updated regularly.
    It includes nice stuff.

    [回复]

  6. 2017年9月29日06:42 | #6

    Thanks to Dr. Hawass’ talks and professional observations,
    that he will share with us next to the world’s greatest monuments, you will experience Egypt
    like no one else.

    [回复]

  7. 2017年10月5日14:13 | #7

    Breakfast is often served at inns between 07:00 to 10.00
    every morning.

    [回复]

  8. 2017年10月14日01:04 | #8

    E book Now.

    [回复]

  9. 2018年10月4日05:51 | #9

    Cuando uno piensa en un chat de sexo por cam no siempre se tiene claro
    lo que en realidad significa, muchos lo relacionan con una chica desnudándose con una chica masturbándose en directo con su consolador y poco
    más, nada más lejos, en serio, el cibersexo es la herramienta para cumplir
    los sueños porno de todos a través de la pantalla del ordenador.

    [回复]

  10. 2018年12月3日11:52 | #10

    It’s enormous that you are getting thoughts from this post as well as from our
    discussion made at this place.

    [回复]

评论分页
1 2 41266
  1. 2010年5月5日03:02 | #1
  2. 2010年8月2日04:42 | #2
  3. 2011年12月21日23:55 | #3
:wink: :-| :-x :twisted: :) 8-O :( :roll: :-P :oops: :-o :mrgreen: :lol: :idea: :-D :evil: :cry: 8) :arrow: :-? :?: :!: