這是令人困惑行:x_next = (x_next + (a // x_prev)) >> 1
的Python 3 - 什麼是 「>>」
0
A
回答
4
這是按位轉換。接下來會給你一些直覺:
>>> 16 >> 1
8
>>> 16 >> 2
4
>>> 16 >> 3
2
>>> bin(16)
'0b10000'
>>> bin(16 >> 1)
'0b1000'
>>> bin(16 >> 2)
'0b100'
1
這被用來除以2它會更清楚它寫成
x_next = (x_next + (a // x_prev)) // 2
可悲的是,很多人試圖要高明和到位乘法和除法的使用移位運算符。通常情況下,這會給那些需要在以後閱讀代碼的可憐人帶來很多困惑。
1
的>>
運營商是同一運營商,因爲它是在C和許多其他語言。
向右移位。如果你的號碼是這樣的二進制:0100
比它將0010
後>> 1
。與>> 2
它將是0001
。
所以基本上它除以2你的電話號碼(而地板的餘數)的好辦法;)
0
這意味着「右移」。它的工作原理一樣地板除以2
:
>>> a = 7
>>> a >> 1
3
>>> a // 2
3
相關問題
- 1. python 3.x什麼是 - >註釋
- 2. python中的三個箭頭(「>>>」)是什麼意思?
- 3. 爲什麼Python 2.7中的`()>''> []> {}> 0> None`?
- 4. PHP:什麼是「 - >」和「=>」?
- 5. 什麼是(int - > int) - >(int - > int)是什麼意思?
- 6. 爲什麼-1 >> 1是-1?而1 >> 1是0!
- 7. 什麼是C++ >>>操作
- 8. 爲什麼<$>和<*>的輸入順序是>> =?
- 9. 爲什麼5> 4> 3!=(5> 4 && 4> 3)在Javascript中爲true?
- 10. 爲什麼(0x7FFFFFFF >> 31)+ 1是零?
- 11. Python解釋器中的>>> >>> some_object和print >>> some_object有什麼不同?
- 12. > +和> - 是什麼意思在C#
- 13. python中的雙重不等式(>>)是什麼?
- 14. python中的`<-`, `> -`,`<+`, `> +`是什麼意思?
- 15. java中的「>>>」是什麼意思?
- 16. X >> = N是做什麼的?
- 17. >>和0xfffffff8是什麼意思?
- 18. 什麼是<%= ... %>
- 19. 什麼是<#= #>
- 20. 「ptr = ptr - > next」這是什麼「 - >」是什麼意思? (C++)
- 21. 人<Person>,什麼是<Person>?
- 22. a >> = b是什麼意思?
- 23. 「somevar >> 0」是什麼意思?
- 24. 這是什麼意思? >> ActionController :: InvalidAuthenticityToken
- 25. 什麼是c運算符>>
- 26. 什麼是objc的 - >?
- 27. Isabelle中的(*> *)是什麼?
- 28. `^^^`和`〜>`是什麼意思?
- 29. 的Python 2.6 - > Python 3中(ProxyHandler)
- 30. 這條線是幹什麼的? arr.length >>> 0
的可能重複[?爲什麼3 << 1 == 6蟒蛇(http://stackoverflow.com/questions/3917948/why-is- 31-6-in-python) – paddy 2013-02-17 22:15:53