写了个python怎么查看代码错误代码,请问有什么错误,为什么会有负数

人眼看来最直观的方案是原码
但原码有两个0正0和负0,因此“看起来直观”的代价是计算混乱

另外一个方案是移码移码的问题在于,由于每个数都自带一个偏移量当兩数相加或相减时,偏移量就会出问题同样计算麻烦

再就是补码了,补码你一开始会觉得很难理解不明白为什么规定成这样,其实理解了之后也是很直观的:就是一个正数不断增大增大到破表就变成了负数,相当于最大的数+1等于最小的数也就是把整个值域连成了一個环,你玩过贪吃蛇吗蛇从左边出界会从右边进来

补码的逆天之处在于,它的加减法可以无视两数符号正数+正数,负数+负数正数+负數,负数+正数都是一样的算法,而其它方案就要根据两数符号采取不同的步骤因此“人眼不直观”带来的好处是“机器容易算”

但是,补码乘除法就没那么方便了不过其它码的乘除法也没方便到哪去,因此补码是最佳选择

受教了许多细节需要自己仔细琢磨。。

为何几个正整数相乘得出结果会昰负数 [问题点数:10分,结帖人lemonlove620]

确认一键查看最优答案

本功能为VIP专享,开通VIP获取答案速率将提升10倍哦!

b的结果值为- 而不是预期的这是為什么?

30*24*60*60*1000;这是按照int数相乘结果超出了int表示的范围,发生了上溢出所以结果变成了负数,然后再将结果存放到long型变量中


楼上用法涉及到強制类型转换符号()与乘号*的优先级

不是变成了负数,而是你的结果溢出了,所以变成了负数

匿名用户不能发表回复!

文档摘要:“我用怎么用python写代码寫了很多年程序自认为对怎么用python写代码已经了解得很透彻了。但在看过这本讲解诀窍和技巧的好书之后我才发现其实我还能把怎么用python寫代码代码写得更高效(例如,使用内置的数据结构)、更易读(例如设定只允许通过关键字形式来指定的参数),以令其更加符合怎麼用python写代码风格(例如用zip函数来同时迭代两个列表)。”

我要回帖

更多关于 python怎么查看代码错误 的文章

 

随机推荐