如何在Python中执行以下操作?
array = [0, 10, 20, 40]
for (i = array.length() - 1; i >= 0; i--)
Run Code Online (Sandbox Code Playgroud)
我需要有一个数组的元素,但从最后到开头.
'〜'在python中意味着什么?
我刚才在python中找到了这个BF解释器.
import sys
#c,i,r,p=0,0,[0]*255,raw_input()
c=0
i=0
p=raw_input()
r=[0]*255
while c<len(p):
m,n,u=p[c],0,r[i]
if m==">":i+=1
if m=="<":i-=1
if m=="+":r[i]+=1
if m=="-":r[i]-=1
if m==".":sys.stdout.write(chr(u))
if m=="[":
if ~u:
while 1:
m=p[c]
if m=="]":n-=1
if m=="[":n+=1
if ~n:break
c+=1
if m=="]":
if u:
while 1:
m=p[c]
if m=="]":n-=1
if m=="[":n+=1
if ~n:break
c-=1
c+=1
Run Code Online (Sandbox Code Playgroud)
我想知道它是做什么的,因为我想在我的ti 84(和PF一个)上制作一个
为什么按位不能切换到切换位的预期效果?参见下面的例子:
a = 5
print(bin(a))
b = ~a
print(bin(b))
Run Code Online (Sandbox Code Playgroud)
这是输出:
0b101
-0b110
Run Code Online (Sandbox Code Playgroud)
问题是为什么左边的第一个位没有切换?
考虑到Python文档说:
~x返回x的补码 - 通过将每个1切换为0而每个0切换为1得到的数字.
编辑:您是说"〜"不是简单切换位的运算符,而是它是二进制补码的运算符?如果是这样,为什么从文档中引用的句子不能说明这一点.Python文档中的上述句子并不意味着这一点.
我正在尝试通过逻辑OR而不是使用指定的IP和掩码来计算广播地址,但是func使我感到有些奇怪。为什么?
IP = '192.168.32.16'
MASK = '255.255.0.0'
def get_ID(ip, mask):
ip = ip.split('.')
mask = mask.split('.')
ip = [int(bin(int(octet)), 2) for octet in ip]
mask = [int(bin(int(octet)), 2) for octet in mask]
subnet = [str(int(bin(ioctet & moctet), 2)) for ioctet, moctet in zip(ip, mask)]
host = [str(int(bin(ioctet & ~moctet), 2)) for ioctet, moctet in zip(ip, mask)]
broadcast = [str(int(bin(ioctet | ~moctet), 2)) for ioctet, moctet in zip(ip, mask)] # a mistake, i guess
print('Subnet: {0}'.format('.'.join(subnet)))
print('Host: {0}'.format('.'.join(host)))
print('Broadcast address: {0}'.format('.'.join(broadcast)))
Run Code Online (Sandbox Code Playgroud)
只是对二进制补码的工作方式有疑问。例如(在python中):
a = 60
print(~a)
Run Code Online (Sandbox Code Playgroud)
给出一个输出:-
-61
Run Code Online (Sandbox Code Playgroud)
不是二进制的补码60是:
a = 0011 1100
~a = 1100 0011
Run Code Online (Sandbox Code Playgroud)
不应该-60吗?
我知道我错了,但为什么它会向前移动-61?
所以我是编程新手.在python中学习基础课程,所以我知道基础知识,我正在尝试更多的练习,我正在尝试这个问题,我不知道从哪里开始.
您将获得一个32位无符号整数的列表.您需要通过在其二进制表示中翻转位来输出您获得的无符号整数的列表(即必须设置未设置的位,并且必须取消设置位).输入格式
输入的第一行包含列表大小T.T行跟随每行,列表中有一个整数.
约束
1≤T≤100
输出格式
使用请求的结果从列表中为每个元素输出一行.
样本输入
3 2147483647 1 0
样本输出
2147483648 4294967294 4294967295
说明
以1为例,因为无符号32位是00000000000000000000000000000001并且正在翻转我们得到的是11111111111111111111111111111110,而这又是4294967294
&,|,^和〜都是python中的按位运算符.&,^和| 对我来说都很好 - 当我拿1 | 0时,我得到1.但是〜给了我奇怪的结果.~1给我-2,而0给我-1.这是因为我使用的是整数还是其他什么?我正在运行python 3.
我希望从〜0得到1,从〜1得到0(整数).这可能吗?
python ×6
python-3.x ×2
algorithm ×1
bit ×1
brainfuck ×1
broadcast ×1
flip ×1
interpreter ×1
ip-address ×1
list ×1