brainfuck 中数字的绝对值

Absolute of number in brainfuck

你会如何在 brainfuck 中得到一个数字的绝对值? 我原本以为对数字 ([->+>+<<]>>[-<<+>>]<<[>[->+>+<<]>>[-<<+>>]<<<-]) 求平方并求平方根会起作用,但我想不出求平方根的方法。

计算一个数的绝对值的一种方法是识别它的符号。如果您知道您的程序如何表示负数,reddit answer by /u/danielcristofani 解释说,为了检查数字的符号,您可以

double the number and see if it becomes zero in the process, e.g. with memory layout 0 0 x 0, this should work, producing 0 f 0 0 where f is the sign flag [>++[<]<[[-]+<+<]>>-]>[-]<

如有必要,您应该应用 x = -x 算法,例如 its wrapping version:

temp0[-]
x[temp0-x-]
temp0[x-temp0+]