Python 进制转换

戏子无情 提交于 2021-01-10 08:58:16

<pre class="line-numbers"><code class="language-python">def bytes2human(n): symbols = (&#39;K&#39;, &#39;M&#39;, &#39;G&#39;, &#39;T&#39;, &#39;P&#39;, &#39;E&#39;, &#39;Z&#39;, &#39;Y&#39;) prefix = {} for i, s in enumerate(symbols): prefix[s] = 1 &lt;&lt; (i + 1) * 10 for s in reversed(symbols): if n &gt;= prefix[s]: value = float(n) / prefix[s] return &#39;%.1f%s&#39; % (value,s) return &#39;%sB&#39; % n </code></pre>

<h2 id="toc_0">python语言n = (n+1)&lt;&lt;1是什么意思</h2>

<p>前提n得有一个初始值,比如n=1,不然会报错那么n=n+1的意思就1+1再赋值给变量n,那么n就等于2。然后&lt;&lt;符号是按位左移的意思,就是把对象转为2进制,有效数字往左移动。&lt;&lt;1就是按位左移1个单位。比如2&lt;&lt;1意思就是2按位左移1个单位,2的二进制就是00000010,左移一位就是00000100,转为十进制就是4。那么按位左移多少个单位的操作,你可以理解为对象乘以2的单位次方。上面的2&lt;&lt;1也就是2乘以2的1次方等于4。用编译器测试一下:</p>

<pre class="line-numbers"><code class="language-python">&gt;&gt;&gt; n=2 &gt;&gt;&gt; n=n+1 &gt;&gt;&gt; n 3 &gt;&gt;&gt; n&lt;&lt;1 &gt;&gt;&gt; n=(n+1)&lt;&lt;1 &gt;&gt;&gt; n 8 </code></pre>

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!