Some further study has been helpful. Am I close to the mark in answering my own question?<br><br>- Further reading shows that Swift&#39;s rationalized operator precedence levels broadly align with those of Erlang and Go. (However, those languages also seem to lack documentation on how they arrived at this set of precedence levels.)<br><br>- It is quite evident why &lt;&lt; is considered exponentiative.<br><br>- Dennis Ritchie has explained &lt;<a href="http://www.lysator.liu.se/c/dmr-on-or.html">http://www.lysator.liu.se/c/dmr-on-or.html</a>&gt; why &amp; has lower precedence than == in C, and why in hindsight that is better off changed. This change has been implemented in Swift/Go/Erlang and also in other languages like Python.<br><br>- &amp; is considered multiplicative because for two bits A and B, A &amp; B == A * B.<br><br>- ^ and | should have equal precedence to - and +, respectively, by analogous reasoning.<br><br>- It also happens to be rational for &amp; to have higher precedence than | by analogy with &amp;&amp; and ||.<br><br>It&#39;s a bit of a bummer, if this line of reasoning was indeed used in arriving at these operator precedence levels, that Swift will not allow evaluation of true * true (etc.) without casting. I would expect true &amp; true == true * true.<br><br><div class="gmail_quote"><div dir="ltr">On Sun, Feb 14, 2016 at 1:42 AM Xiaodi Wu &lt;<a href="mailto:xiaodi.wu@gmail.com">xiaodi.wu@gmail.com</a>&gt; wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Very well. May I ask what the rationale might be? I&#39;m not sure I can deduce it from the available documentation. In other circumstances where Swift operators differ from C (e.g. overflow handling for addition, etc.), the behavior is amply documented and the rationale quite clear. (I should add that Swift documentation currently introduces these bitwise operators as &#39;familiar&#39; to those coming from C and Objective-C before defining what they are, which discourages careful study.)<br><div class="gmail_quote"><div dir="ltr">On Sat, Feb 13, 2016 at 10:10 PM Chris Lattner &lt;<a href="mailto:clattner@apple.com" target="_blank">clattner@apple.com</a>&gt; wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><br>
&gt; On Feb 13, 2016, at 6:32 AM, Xiaodi Wu via swift-evolution &lt;<a href="mailto:swift-evolution@swift.org" target="_blank">swift-evolution@swift.org</a>&gt; wrote:<br>
&gt;<br>
&gt; Not sure if this is intentional, a bug, and/or a topic for evolution:<br>
&gt;<br>
&gt; In Swift, bitwise operators seem to have a different precedence in<br>
&gt; relation to other operators than they do in (all other?) C-family<br>
&gt; languages, at least per documentation.<br>
<br>
Yep, this is true, and this is intentional.  Swift has a greatly simplified and rationalized set of precedences, and yes, that means they differ from C.<br>
<br>
-Chris<br>
<br>
</blockquote></div></blockquote></div>