brainfuck - Brainfuck中数字的绝对值

标签 brainfuck

如何在 Brainfuck 中获得数字的绝对值? 我最初认为对数字( [->+>+<<]>>[-<<+>>]<<[>[->+>+<<]>>[-<<+>>]<<<-] )进行平方并求平方根会起作用,但我想不出一种求平方根的方法。

最佳答案

计算数字绝对值的一种方法是确定其符号。如果您知道程序如何表示负数,则有 reddit answer通过 /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+]

关于brainfuck - Brainfuck中数字的绝对值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72329245/

相关文章:

c++ - 程序忽略输入

memory - 如何获取一个大整数作为输入并将其存储在内存中

python - 优化 brainfuck 中的细胞增长

脑残。如何检查回文?

javascript - 用于 brainfuck 循环的正则表达式

interpreter - 在 Nimrod 中的 Brainfuck 翻译

haskell - 为什么 GHC 提示类型错误?

brainfuck - Brainfuck 中的无限计数循环

c++ - 通过运行可执行文件来制作可执行文件

c++ - 如何打开两个独立的控制台并向它们写入不同的数据?