正在加载……
专注、离线、切勿分心
堆栈操作
(a-b)/c;  后缀表示   a   b  -   c   /   
问题:不能把运算符全部放在后面,定义自己的词来解决问题;
SWAP    这个词是交换栈中栈顶和栈顶后的一个元素位置;eg:  1 2 . .   -->2 1 ok    |    1 2 SWAP  .  .  -->1  2  OK
设:a = 10 , b = 4 , c = 2 ;
2 10 4 - SWAP / .                           

常用堆栈操作:
   
12  DUP  .  .
DUP  *   .


a(a+b)---> a  b   OVER   +   *    .
ab-ba == b(a-c)


显示栈顶元素,但是不弹出  .S     


成对数堆栈操作

说明:前缀“2”表明这些堆栈操作符都是成对处理数,也能用来处理双字长数。栈标志中的字母“d”表示成对数。
eg:
   

堆栈操作练习

1、ab+c c   a   b   *    + :  NUM1  *  +  .  ;
2、(a-4b)/6 +c a   4   b   *    -    ;    6   /    ;    c  + : NUM2_1    *     -   ;
: NUM2_2    6    /   ;
: NUM2_3    +   ;

3、a/8b a 8 b * / : NUM3       *     /
4、0.5ab/100 0.5 a b * * 100 / : NUM4_1  0.5 * * ;
: NUM4_2     100   /   ;
5、a(2a+3) a 2 a * 3 + * : NUM5  2  *  3  +  *  ;
6、(a-b)/c a b - c  / : NUM6_1   -   ;
: NUM6_2   /   ;

\\栈练习
a  b  c  ===   c   b  a SWAP    
ROT
自己实现OVER功能 :  MYOVER  SWAP  DUP  ROT  ROT  ;
实现<ROT  功能与ROT相反 1 2 3 === 3 1 2 :  <ROT  SWAP  ROT  SWAP  ;




posted on 2017-04-26 22:50  正在加载……  阅读(357)  评论(2编辑  收藏  举报