V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
hippypopo
V2EX  ›  Python

小白问题,-1 / 2 等于几?

  •  
  •   hippypopo · 2017-03-29 20:35:18 +08:00 · 4142 次点击
    这是一个创建于 2820 天前的主题,其中的信息可能已经有所发展或是发生改变。
    想试试自己写 bin() 的功能,但是我写的有一步 n = n / 2 如果输入是负数会卡在 -1 / 2 = -1 死循环里。当然这个问题很好解决,但是我就想不通不带浮点的话 1/2=0 我能理解,为啥 -1/2 得到 -1 。

    麻烦请从原理上解释一下,谢过。
    13 条回复    2017-03-30 11:42:53 +08:00
    choury
        1
    choury  
       2017-03-29 20:41:31 +08:00 via Android
    向下取整,这又不是四舍五入
    Tink
        2
    Tink  
       2017-03-29 20:42:29 +08:00 via iPhone
    向下取整
    Perry
        3
    Perry  
       2017-03-29 20:54:51 +08:00 via iPhone
    python 是 floor
    c 是只看整数
    Daetalus
        4
    Daetalus  
       2017-03-29 20:55:50 +08:00   ❤️ 1
    理解成在箭头向右的数轴上,左边最近的一个整数。
    knightdf
        6
    knightdf  
       2017-03-29 20:57:10 +08:00   ❤️ 2
    负数取模问题,参考 http://www.jianshu.com/p/452c1a5acd31
    siteshen
        7
    siteshen  
       2017-03-29 21:24:30 +08:00   ❤️ 1
    我来写个简单易懂的答案
    -1 / 2 = (1 - 2) / 2 = 1/2 - 2/2 = 0 - 1 = -1
    zhidian
        8
    zhidian  
       2017-03-29 21:45:47 +08:00
    为什么我想打楼上那个简单易懂的答案呢?!逗我么。 Round 本来就有 round to zero , round down, round up 各种啊……
    owt5008137
        9
    owt5008137  
       2017-03-30 00:16:33 +08:00 via Android
    N/2 相当于 N>>2 。很多编译器都会这么优化掉。
    所以-1 的补码全是 1 喽,有符号类型右移完还是全 1 喽
    msg7086
        10
    msg7086  
       2017-03-30 01:06:26 +08:00
    整数除法和浮点数除法是两回事啊……
    lxy42
        11
    lxy42  
       2017-03-30 08:03:04 +08:00 via Android
    python 文档有专门一节讲这个的
    justfun
        12
    justfun  
       2017-03-30 08:38:29 +08:00 via iPhone
    @zhidian
    @siteshen 你们不要搞事情😂😂
    qiyuey
        13
    qiyuey  
       2017-03-30 11:42:53 +08:00
    不同语言的处理结果并不相同,所以不建议这样用
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3342 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 11:26 · PVG 19:26 · LAX 03:26 · JFK 06:26
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.