Windows下自带的计算器用的也挺多了,但是基本上都是做一些简单的加减乘除,坦白讲,之前我甚至连CE和C两个键的区别都搞不太清楚,更不要说那些MR/MS/M+/M-/MC了。带着学习的心情,我打开了Windows 7下的计算器极其帮助,当然还有baidu/google。想不到,从此一个崭新的世界出现在了我的面前。
这个计算器的功能是如此的强大,尤其对于一个程序员,更是相当的上手,不善加利用,简直就是暴殄天物。下面大概介绍一下其功能与用法。
一、标准计算器
这是最常用也是最简单的模式,加减乘除,开方倒数,相信每个人都很熟悉,我觉得需要注意的几点是:
CE/C:CE表示Clear Error,是指你清楚你当前的错误输入;而C表示Clear,是指清楚整个计算。比如你输入1+2之后,按CE会清除第二个参数2,你可以继续输入其他数和第一个参数1相加。而C则整个的删除1+2这个计算,你需要重新开始一个计算。
MC/MR/MS/M+/M-:M表示Memory,是指一个中间数据缓存器,MC=Memory Clear, MR=Memory Read, MS=Memory Save, M+=Memory Add, M-=Memory Minus,可以用一个例子来演示:(7-2) * (8-2)=
先输入7,按MS保存,输入2,按M-与缓存器中的7相减,此时缓存器中的值为5;然后计算8-2,得出结果为6,输入*相乘,按MR读出之前保存的数5,按=得出结果30,算完后按MC清除缓存器。
% :几番尝试,我还是不怎么理解这个操作的意义何在,其规则是将前两个操作数相乘并取其百分值,而与操作符没有任何关系,如下:
7*8%=7*0.56=3.92
7+8%=7+0.56=7.56
二、科学计算器
这是标准模式的扩展,主要是添加了一些比较常用的数学函数,我觉得可以分为三组:
三角函数:正弦,双曲正弦,按Inv可以计算其反函数反正弦,反双曲正弦,对于余弦,正切也是如此,这样就有4*3一共12个函数。
代数函数:高中代数里学过的幂函数(x2, x3, x1/3, xy, x1/y),对数函数(In, log),阶乘(n!),指数函数(10x)
其他:这里有些函数在编程的时候用的会比较多,比如取整(Int),圆周率(Pi),取模(Mod),以及其他一些表示函数如度分秒表示(dms),科学计数法表示(F-E),和科学计数法输入(Exp)
这是需要注意的几点是:
对于需要一个输入参数(x)的函数,一般先输入参数,再按函数进行计算;对于有两个参数的函数(x,y),一般是先输入x参数,按函数,再输入第二个参数,按=进行计算。
log函数的底是10,Ln的底是e,但是对于程序员,很多时候,尤其是在考虑算法复杂度的时候,需要用到的是2为底的对数(lg),如我想知道对于复杂度为O(lgN)的算法,如果输入数据是100000000时的计算量大概有多少,那么可以利用对数的性质而这样计算:log(100000000) / log (2) = 26.57,原来对于一亿的输入量,O(lgN)的计算量是如此的小,也难怪,其本来就是强大的指数函数的反函数......
dms表示Degree-Minute-Second,对一个以小数表述的角度用度分秒的形式来表示,比如22.5,用dms表示就是22.30
degree, radians, grads是三种不同的角度表示法。其中radian = degree * PI/180; grads=degree * 9/10
三、程序员计算器
这是我们程序员的模式,你可以使用不同的进制来表示数,也可以限定数据的字节长度,而且每个数都在下方给出了其二进制的值,非常贴心。所谓程序员计算器,除了这些,还包括各种位运算,下面一一介绍:
And, Or, Not, Xor: 最基本的与或非和异或操作,不作解释。
Lsh, Rsh:全称是Left Shift和Right Shift,也就是左移和右移操作,你需要输入你要移动的位数(不能大于最大位数)
RoL, RoR:全称是Rotate Left和Rotate Right,对于RoL来讲,就是向左移动一位,并将移出的那位补到最右边那位上,RoR类似。