有人可以發佈一個代碼片段來在編程語言brainf * ck中乘以兩個一位數字的數字嗎?Brainfuck中的兩個一位數字相乘的代碼
回答
,>,< input numbers at cell #1 #2
[
> go to cell #2
[
->+>+<< move data to cell #3 #4
]
>> go to cell #4
[
-<<+>> move data to cell #2
]
<<< go to cell #1
- decrement cell #1
]
>>. output cell #3
程序讀取到小區#1,#2和結果將是出現在小區#3
我使用BF解釋其中I可以輸入數字作爲編號(未ASCII符號)
,>,<[>[>+>+<<-]>>[<<+>>-]<<<-]>>.
這將乘以ASCII值,而不是實際值。用這個代碼,'1'*'1'= 49 * 49 = 2401,假設有8位單元格,則會導致2401%256 = 97. 97顯然不等於1 * 1。您應該減去48 ascii代碼爲'0')從字符中獲取實際值。像這樣: ,> ++++++ [<--------> - ],> ++++++ [<--------> - ] <<[> [> +> + <<-]>> [<<+>> - ] <<<-]>>。 – 2012-12-10 09:55:36
好,我被第一個鼓舞,它更簡單:
,>,<>[->+>+<<]>>[->>+<<]<[->>>+<<<]>>>++++++++++++++++++++++++++++++++++++++++++++++++
的48+到底是爲bfde v以ascii顯示。
那麼,我可能沒有最有效的方法,但它的工作原理。我做的事情在一個特定的方式,使得其將與所有的工作這些
2 * 3 = 6
6 * 7 = 42
4 * 5 = 20
所以,在這裏,它是:
read
>, >, <<
convert from ascii
+++++ +
[
>----- ---
>----- ---
<<-
]
multiply
>[
>[>+>+<<-]
>[<+>-]
<<-
]
separate numbers
>[-]>+> >+++++ +++++<
[
- >- [>>>]+++++ +++++<<+
[<<<]>>>>
]
<-
<+++++ +++++>>>[-<<<->>>]<<<
convert to ascii
<+++++ +
[
>+++++ +++>
[+++++ +++>]
<[<]>-
]
print
>>[.<<]<[<<]>>.
我用這個解釋:http://esoteric.sange.fi/brainfuck/impl/interp/i.html
有點兒難以理解,但它的工作原理
[>>> + < < < - ] >>> [> +> + < < - ] >> [< < + >> - ] < < < < < < [> +> +> + < < < - ] >>> [< < < + >>> - ] >> [ - < < < [ - < < + >>] < [> +> + < < - ] >> [< < + >> - ] < < >>>>] < [ - ] < < [ - ] < [ - ] <
- 1. 訪談:將兩個數字相乘的Unix代碼
- 2. 在brainfuck中打印一個數字?
- 3. 相乘兩個32位的數字,而不使用64位的int
- 4. 在javascript中將兩個數組中的所有數字相乘
- 5. 乘以兩個32位數字......這個代碼有什麼問題
- 6. 如何計算兩個int64數字相乘的結果另一個int64數字?
- 7. 將arraylist中的每個數字相乘
- 8. 在IOS中相乘兩個非常大的數字
- 9. 兩個鏈接列表中的數字相乘
- 10. 如何將datagridview中的兩個數字相乘
- 11. 兩個64位數的乘法運算
- 12. 將特定位置的字符串中的數字相乘
- 13. 如何計算兩個數字的總和與BrainFuck
- 14. 在兩個代碼中構建兩個代碼到jquery中的一個代碼
- 15. 兩個數字的Mips乘法函數
- 16. Lightswitch:如何將兩個字段相乘?
- 17. 將兩個字段值相乘
- 18. 如何閱讀brainfuck中的多位數字
- 19. Verilog代碼移位和添加乘數
- 20. 乘以最後兩位數字
- 21. 生成兩位數字不同的唯一代碼
- 22. 從相同的代碼給出兩個不同的GPS位置
- 23. 連接兩個數字位不工作的代碼
- 24. 在C/C++中相乘兩個大數字
- 25. 如何在Java中乘以兩個大數字(比如512位)
- 26. 乘以兩個大於255的數字
- 27. 兩個32位有符號整數使用SSE2相乘
- 28. 如何獲取此代碼以將數組中的數字相乘?
- 29. 相乘兩個矩陣
- 30. 將兩個值相乘
@戈登:具有諷刺意味的是,如果答案可以在維基百科上找到,那麼這個問題似乎很難被視爲「過於本土化」。 – 2011-03-02 10:04:44
@Cody雖然SO絕對是「請問在編程語言y中如何做x」的正確場所我不認爲像BF這樣的深奧語言符合「適用於網絡的全球受衆」 – Gordon 2011-03-02 10:14:04