任何人都可以在这段代码中解释我的打印语句吗?

耆那教

我在互联网上找到了这段代码,但我无法理解打印语句是如何工作的。

我已经尝试看到很多答案,但没有一个完美地回答。

def main():
    n=int(raw_input())
    for i in range(0, 1<<n):
        gray=i^(i>>1)
        print "{0:0{1}b}".format(gray,n),

main()
苏文·潘迪

for i in range(0, 1<<n):
在这里,1 << n将 1 左移 n 位。它的意思是:
if n = 1, 1 << 1 would be 10, n = 2, 1 << 10 would be 100[2 = 二进制 10]
等等。
对于十进制数,答案等于 2 的 n 次方。
对于二进制“n”个零添加。
所以范围是for i in range(0, 2 ** n)

gray=i^(i>>1)

这里i>>1将 i 向右移动 1 位。它的意思是:

   if i = 1, 1 >> 1 would be 0,    
       i = 2, 10 >> 1 would be 1 [2 = binary 10]   
       i = 3, 100 >> 1 would be 10 (in binary) 2 in decimal   

等等。
对于十进制数,它相当于除以 2(并忽略 . 小数点后的数字)。
对于二进制最后一位被擦除。

^是异或运算符。它被定义为:

0 ^ 0 = 0,     
0 ^ 1 = 1 ^ 0 = 1,   
1 ^ 1 = 0  
print "{0:0{1}b}".format(gray,n)

这里{1}指的是n,b指的是二进制。所以灰度被转换为二进制并用n位数字表示。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

任何人都可以解释为什么这代码连接,而不是增加的数值?

任何人都可以解释此HashMap行为

任何人都可以对CURIE及其使用方法进行很好的解释吗?

K&R 1.5.4,如果在此代码示例中,任何人都可以解释else吗?

任何人都可以解释这些功能,因为我在官方文档中找不到任何描述

任何人都可以解释这种有关数组排序的奇怪行为吗?

关于pytorch张量的奇怪行为。任何人都可以解释清楚吗?

任何人都可以向我解释ip =“ $ {ip:-$ {default_ip}}

任何人都可以通过示例详细解释多态关联吗?

任何人都可以逐步解释该过程

任何人都可以对以下javascript RE代码进行解释吗?

任何人都可以在HTML服务的GAS文档中解释用户对象示例吗?

任何人都可以向我解释dispatch_sync和dispatch_async之间的区别吗?

任何人都可以说出这段代码出了什么问题吗(python :()的新手

任何人都可以解释这个Javascript数据结构吗?

任何人都可以在此代码中解释javax.swing.SwingUtilities.invokeLater的使用

任何人都可以更正此代码吗?

任何人都可以解释以下声明

任何人都可以在C ++中使用if语句和字符串来帮助我吗?

任何人都可以解释网络服务器日志数据中的字段吗?

任何人都可以请解释我对我的反应 setState new

任何人都可以指导我查看用于生成中性景观模型的 Netlogo 代码示例吗?

任何人都可以帮助我在颤振中对齐布局吗?

按钮组件中的 MUI 奇怪代码,希望任何人都可以解释

任何人都可以在 matlab 中识别混合 GA PSO 代码中的错误吗?

任何人都可以帮助我理解下面代码中的问题吗?

任何人都可以向我解释这一点吗?关闭

任何人都可以解释以下程序的输出

任何人都可以在颤振中向我解释这段代码吗?