C is my working language,I don' want to remember too much rules for operator, just use parentheses.
It's more reliable than the complicated rules. Xiaodi Wu via swift-evolution <swift-evolution@swift.org>于2016年8月3日 周三05:55写道: > Well, there I disagree. All of these operations take integers and produce > other integers. As we've discussed, the bitwise operators resemble > multiplication or addition in particular ways; not so different at all. > This is IMO a weak argument because you're arguing gradations of "so > different", which is entirely subjective in the end. > > What I'm saying is that I would be mildly in favor of your proposal > because I can justify it on the basis of something black-and-white: > conflicting "levels" at which these operators work on integers (collection > of bits vs. element in the set of all integers) and the concomitant > differences regarding when these operators trap. > On Tue, Aug 2, 2016 at 16:49 Anton Zhilin <antonyzhi...@gmail.com> wrote: > >> 2016-08-03 0:46 GMT+03:00 Xiaodi Wu <xiaodi...@gmail.com>: >> >>> It's not that << will overflow and / will not. Substitute * for / and >>> the argument would be the same. The difference is that << traps when you >>> shift more than the total number of bits but does *not* trap when you shift >>> numbers off as would arithmetic exponentiation; * traps on overflow. Thus, >>> what << is concerned about is the bits (as it should), but * is concerned >>> about the max representable value. >> >> >> Substitute * for / and my argument would also be the same :) >> > _______________________________________________ > swift-evolution mailing list > swift-evolution@swift.org > https://lists.swift.org/mailman/listinfo/swift-evolution >
_______________________________________________ swift-evolution mailing list swift-evolution@swift.org https://lists.swift.org/mailman/listinfo/swift-evolution