如何在BF中添加两位一位数字

时间:2012-11-29 15:51:35

标签: brainfuck

  

可能重复:
  How to calculate the sum of 2 numbers with BrainFuck

有谁知道如何编写一个简单的BF程序,增加两个一位数字?我是语言的新手,需要一些帮助才能抓住这些概念。

1 个答案:

答案 0 :(得分:6)

如果您有两个单元格,每个单元格的值为0到9,则只需将一个单元格添加到另一个单元格即可。假设您有两个单元格A和B. A位于位置0而B位于位置1.您可以像这样将B添加到A(假设指针从A开始)。我将A设置为4,B设置为8,然后将B添加到A:

setting A and B
++++>++++++++

remember the pointer is at B now so we can add B to A like this
[<+>-]
and now the pointer is still at B but B contains 0 and A contains 12

如果您希望用户输入这些单个数字,请记住,当您使用字符时,字符的ASCII代码将放在当前单元格中。所以你首先需要从数字中减去48(48是字符'0'的ASCII代码)。下面是一个用键盘中的两个字符填充A和B的示例(我假设用户只按任意数字键,而不是字母或符号)

Pointer starts at A so we have the user press a number key
,

we then subtract 48 from it so that it contains the actual value
------------------------------------------------

we move to B and do the same
>,------------------------------------------------

from here on it's the same as the last example
[<+>-]