![](/img/trans.png)
[英]C++ RoundUp like in Excel that floor's negative numbers and ceil's on positive numbers
[英]Does division operator ( / ) in C++ return the floor value in case of num with same sign and ceil value when both the numbers are of opposite sign?
在C++中,當分子和分母均為整數且符號相同時,除法運算給出商的底值。 但是當它們的符號相反時,它就會給出 ceil 值。 我的理解是正確的還是還有更多?
你說得對。 一些 20 世紀的硬件工程師決定這樣做,據我所知,現在所有的微處理器都是這樣做的。 從數學上講,這通常有點不方便,這就是為什么 Python(例如)在軟件中更正總是朝着地板方向舍入。
要獲得更多見解,除了 integer 商的p/q
之外,請嘗試p%q
相應的余數。
你的問題被標記為C++但這實際上是一個計算機硬件問題,因此,查閱 C17 標准可能更有幫助,其 sect. 6.5.5(6) 內容如下:
當整數相除時,
/
運算符的結果是舍去任何小數部分的代數商。 如果商a/b
是可表示的,則表達式(a/b)*b + a%b
應等於a
....
(我有一個 memory 的碎片,來自 25 或 30 年前,讀到一個 CPU 向地板四舍五入。如果我的 memory 不是完全虛構的,那么那個 CPU 顯然沒有在市場上取得成功,不是嗎?)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.