什麼是BODMAS?爲什麼它在編程中很有用?術語「BODMAS」是什麼意思?
回答
http://www.easymaths.com/What_on_earth_is_Bodmas.htm:
你認爲答案2 + 3×5?
是(2 + 3)x 5 = 5 x 5 = 25?
或2 +(3 x 5)= 2 + 15 = 17?
BODMAS可以前來救援,讓我們有章可循,使我們始終得到正確的答案:
(B)拍(O)刻申(d)暫無報價參數(M)ultiplication(A)ddition( S)ubtraction
根據BODMAS,乘法應該總是在加法之前完成,因此17實際上是根據BODMAS的正確答案,並且如果您輸入2 + 3 x 5,計算器也會給出答案。
爲什麼它在編程中很有用?不知道,但我認爲這是因爲你可以擺脫一些括號?我是一個很守程序員,所以我的線可以是這樣的:
result = (((i + 4) - (a + b)) * MAGIC_NUMBER) - ANOTHER_MAGIC_NUMBER;
與BODMAS可以讓這個更清楚一點:
result = (i + 4 - (a + b)) * MAGIC_NUMBER - ANOTHER_MAGIC_NUMBER;
我想我還是會用第一種變體 - 更多的括號,但這樣我不必再學習另一條規則,並且遇到忘記它並導致那些奇怪的難以調試錯誤的風險降低?
只是在猜測那部分。
斯通編輯:修正了數學作爲該猶指出
的這另一個版本(中學)被「請原諒我親愛的薩莉阿姨」。今天
- 括號
- 指數
- 乘法
- 司
- 加成
- 減法
的記憶裝置是在學校的幫助,並在編程還是有用的。
在表達操作,如順序:
foo * (bar + baz^2/foo)
- 乙球拍第一
- ø rders(即權力及平方根等)
- d暫無報價和中號 ultiplication(左到右)
- 甲 ddition和小號 ubtraction(左到右)
當我在小學(加拿大)瞭解到這一點,有人稱之爲BEDMAS:
個乙球拍
Ë xponents
d暫無報價
中號 ultiplication
甲 ddition
小號 ubtraction
只爲那些來自世界的一部分。 ..
我真的不知道如何適用於編程舊的BODMAS助記符無論如何。語言之間的操作順序無法保證,而且許多人仍然按照該順序保持標準操作,但並非所有操作都是如此。然後有一些語言的操作順序並不是真的有意義(例如,Lisp方言)。在某種程度上,如果你忘記了標準的順序,要麼使用一切括號(如(A * B)+ C)或專門學習你工作中的每一種語言的順序很可能進行編程更好。
我沒有權力編輯@Michael Stum's answer,但它不是很正確。他減少了
(i + 4) - (a + b)
到
(i + 4 - a + b)
他們是不等價的。最好的降低,我可以得到整個表達式
((i + 4) - (a + b)) * MAGIC_NUMBER - ANOTHER_MAGIC_NUMBER;
或
(i + 4 - a - b) * MAGIC_NUMBER - ANOTHER_MAGIC_NUMBER;
我某處讀到尤其是在C/C++分裂你的表情成小的語句是爲優化更好;所以不必在一行中編寫非常複雜的表達式,而是將這些部分緩存到變量中,並逐步完成每個變量,然後在您繼續構建它們時進行構建。
優化程序將使用寄存器中的地方,你有變量,因此它不應該影響到空間,但它可以幫助編譯器一點點。
- 1. 以下smali術語是什麼意思?
- 2. 術語「儀表」是什麼意思?
- 3. 術語「inplace」是什麼意思
- 4. 術語「捲曲」是什麼意思
- 5. 術語「髒物」是什麼意思?
- 6. 是什麼意思:是什麼意思?
- 7. 術語「網絡堆棧」是什麼意思?
- 8. 術語「輸入同步呼叫」是什麼意思?
- 9. angularJS文檔中的各種術語是什麼意思?
- 10. 關於物體方向,術語「消耗品」是什麼意思?
- 11. 在C++中,術語「自由功能」是什麼意思?
- 12. 術語「等待發送」是什麼意思?
- 13. Ruby on Rails中的術語「vendoring」或「to vendor」是什麼意思?
- 14. 術語「計算空間」是什麼意思?
- 15. 套接字術語 - 「阻塞」是什麼意思?
- 16. 在Akka/Spray中術語「背景」是什麼意思
- 17. 「?」是什麼意思?
- 18. $$ $$是什麼意思?
- 19. 什麼是「||」意思?
- 20. 「\\。\」,「\ ?? \」,「\\?\」,「\\」是什麼意思?
- 21. 「=」是什麼意思
- 22. &**是什麼意思?
- 23. 是什麼意思?
- 24. 「_」是什麼意思?
- 25. 什麼是:!:意思?
- 26. || =是什麼意思?
- 27. %%是什麼意思?
- 28. =是什麼意思?
- 29. %{}是什麼意思?
- 30. + =是什麼意思?
[在C和C++中的運算符優先級](http://en.wikipedia.org/wiki/Operators_in_C_and_C%2B%2B#Operator_precedence) – foxy 2008-10-22 11:16:30
我通常使用空格來顯示四個運算的順序 - *操作,如下所示:a + b * c對於所有其他操作符,我使用括號使操作順序清晰。 – 2008-08-15 00:02:11
今天之前我從未見過BODMAS。我學到了PEMDAS(Parens,Exponents,Multiplication,Division,Addition,Subtraction)。 – FishBasketGordo 2012-05-21 18:05:55