我正在研究this series of problems。
我不明白问题11和int()
的使用方式。我理解将x
直接转换为int
会导致丢失一些零,所以这样做是不可能的,但我不明白是什么
intp = int(p,2)
假设正在做。打印intp
我得到以下值4,3,10,9
。这与0100,0011,1010,1001
有什么关系?还有为什么零首先丢失了?
问题11
2级
问题:编写一个接受逗号分隔的程序 4位二进制数作为输入,然后检查它们是否是 可以被5整除。可以被5整除的数字 以逗号分隔的顺序打印。
示例:
0100,0011,1010,1001
然后输出应为:
1010
注意:假设数据是由控制台输入的。
提示:如果输入数据被提供给问题,它应该 被假定为控制台输入。
value = []
items=[x for x in raw_input().split(',')]
for p in items:
print p
intp = int(p, 2)
print intp
if not intp%5:
value.append(p)
print ','.join(value)
答案 0 :(得分:1)
要将二进制数转换为Decimal,我们必须使用python内置的 int 函数,该函数将二进制数和数字系统的底数作为参数。 示例:
>>> p='1010'
>>> c=int(p,2)
>>> print c
10
答案 1 :(得分:0)
int()函数将给定基数的数字转换为十进制。
语法:int(string,base)
参数:
字符串:由1和0组成 base :(整数值)数字的底数。 返回:
返回一个等效的整数值 给定基数的二进制字符串的数量。
有关更多信息,Click here
答案 2 :(得分:-1)
正如上面提到的脾气暴躁的评论所说,int函数接受第二个参数,这是转换的基础。所以它将基数2(二进制)变量绑定到p并将其转换为基数为10的int,即正常人。
答案 3 :(得分:-1)
value = []
items=[x for x in input().split(',')]
for p in items:
intp = int(p, 2)
value.append(intp)
for x in value:
if x%5==0:
print(bin(x))