想试试自己写 bin() 的功能,但是我写的有一步 n = n / 2 如果输入是负数会卡在 -1 / 2 = -1 死循环里。当然这个问题很好解决,但是我就想不通不带浮点的话 1/2=0 我能理解,为啥 -1/2 得到 -1 。
麻烦请从原理上解释一下,谢过。
麻烦请从原理上解释一下,谢过。
|
chouryMar 29, 2017 via Android
1
向下取整,这又不是四舍五入
|
|
TinkMar 29, 2017 via iPhone
2
向下取整
|
|
PerryMar 29, 2017 via iPhone
3
python 是 floor
c 是只看整数 |
|
4
理解成在箭头向右的数轴上,左边最近的一个整数。
|
|
PerryMar 29, 2017 via iPhone
5
|
|
6
负数取模问题,参考 http://www.jianshu.com/p/452c1a5acd31
|
|
7
我来写个简单易懂的答案
-1 / 2 = (1 - 2) / 2 = 1/2 - 2/2 = 0 - 1 = -1 |
|
zhidianMar 29, 2017
8
为什么我想打楼上那个简单易懂的答案呢?!逗我么。 Round 本来就有 round to zero , round down, round up 各种啊……
|
|
owt5008137Mar 30, 2017 via Android
9
N/2 相当于 N>>2 。很多编译器都会这么优化掉。
所以-1 的补码全是 1 喽,有符号类型右移完还是全 1 喽 |
|
msg7086Mar 30, 2017
10
整数除法和浮点数除法是两回事啊……
|
|
lxy42Mar 30, 2017 via Android
11
python 文档有专门一节讲这个的
|
|
qiyueyMar 30, 2017
13
不同语言的处理结果并不相同,所以不建议这样用
|