Dc
如何使用dc獲得數字之間的差異?
輸入:
> printf 1\n\2\n3\n 1 2 3
期望的輸出:
0 1 1
輸入
printf 1\n\2\n3\n | dc -e '-p'
輸出是:dc: stack empty dc: stack empty
您可以將整個命令集直接通過管道傳輸到
dc
.printf "1 2 3 - - p" | dc
如果您想減去任意堆棧,您可以使用宏。
printf "%s [-z1<r]srz1<rp" "<insert numbers here>" | dc
所以例如
printf "%s [-z1<r]srz1<rp" "100 5 2 1" | dc 96
該宏執行以下操作:
[
啟動宏-
減去前兩個數字並推回堆棧z1<r
將堆棧大小推送到堆棧和 1,然後比較 LESSTHAN,如果為 true 則執行r
宏]sr
宏結束,存入寄存器 rz1<r
通過測試檢查堆棧是否包含元素1 < Stack Size
p
列印結果。- `