body, table{font-family: 微软雅黑} table{border-collapse: collapse; border: solid gray; border-width: 2px 0 2px 0;} th{border: 1px solid gray; padding: 4px; background-color: #DDD;} td{border: 1px solid gray; padding: 4px;} tr:nth-child(2n){background-color: #f8f8f8;}

堆栈操作
(a-b)/c;  后缀表示   a   b  -   c   /   
问题:不能把运算符全部放在后面,定义自己的词来解决问题;
SWAP    这个词是交换栈中栈顶和栈顶后的一个元素位置;eg:  1 2 . .   -->2 1 ok    |    1 2 SWAP  .  .  -->1  2  OK
FORTH基本堆栈操作-LMLPHP
设:a = 10 , b = 4 , c = 2 ;
2 10 4 - SWAP / .                FORTH基本堆栈操作-LMLPHP
常用堆栈操作:
FORTH基本堆栈操作-LMLPHP
12  DUP  .  .
DUP  *   .
FORTH基本堆栈操作-LMLPHP

FORTH基本堆栈操作-LMLPHP

a(a+b)---> a  b   OVER   +   *    . FORTH基本堆栈操作-LMLPHP
ab-ba == b(a-c) FORTH基本堆栈操作-LMLPHP
FORTH基本堆栈操作-LMLPHP
显示栈顶元素,但是不弹出  .S     FORTH基本堆栈操作-LMLPHP
成对数堆栈操作
FORTH基本堆栈操作-LMLPHP
说明:前缀“2”表明这些堆栈操作符都是成对处理数,也能用来处理双字长数。栈标志中的字母“d”表示成对数。
eg:
FORTH基本堆栈操作-LMLPHP

05-11 13:17