我只想将base-2二进制数字串转换为int,如下所示:
>>> '11111111'.fromBinaryToInt()
255
Run Code Online (Sandbox Code Playgroud)
有没有办法在Python中执行此操作?
为了将整数转换为二进制,我使用了以下代码:
>>> bin(6)
'0b110'
Run Code Online (Sandbox Code Playgroud)
什么时候擦除'0b',我用这个:
>>> bin(6)[2:]
'110'
Run Code Online (Sandbox Code Playgroud)
我能做些什么,如果我想表明6作为00000110代替110?
我正在尝试使用Python中的bin()函数将整数转换为二进制.但是,它总是删除我实际需要的前导零,这样结果总是8位:
例:
bin(1) -> 0b1
# What I would like:
bin(1) -> 0b00000001
Run Code Online (Sandbox Code Playgroud)
有办法做到这一点吗?
我可以使用python中的任何模块或函数将十进制数转换为二进制数吗?我能够使用int('[binary_value]',2)将二进制转换为十进制,所以任何方法都可以在不编写代码的情况下自行完成
bin(30)的输出中"b"代表什么:"0b11110"?有什么办法可以摆脱这个"b"吗?如何让bin()的输出始终返回标准的8位数输出?
我有一组位串:({'0011', '1100', '1110'}一组中的所有位串都具有相同的长度)。
我想快速找到与集合最大相似度最小的相同长度的位串。最大相似度可以这样计算:
def max_similarity(bitstring, set):
max = 0
for item in set:
temp = 0
for i in range(len(bitstring)):
if bitstring[i] == item[i]:
temp += 1
if temp > max:
max = temp
return max
Run Code Online (Sandbox Code Playgroud)
我知道我可以遍历该长度的所有可能的位串,计算每个位的最大相似度,最后保留这些迭代中的最小者。但这解决了O(2 ^ n)中的问题。我想知道是否有人看到任何更快的选择。
我一直在玩Pythons XOR:
def int2bin(integer, digits):
if integer >= 0:
return bin(integer)[2:].zfill(digits)
else:
return bin(2**digits + integer)[2:]
def XOR(bitset):
intset = [int('{}'.format(bitstring), 2) for bitstring in bitset]
digits = len(bitset.pop())
if len(intset) == 1:
return int2bin(~intset.pop(), digits)
else:
curr …Run Code Online (Sandbox Code Playgroud) 我想知道我的实施是否有效.我试图使用python找到解决该问题的最简单,最简单的解决方案.
def count_gap(x):
"""
Perform Find the longest sequence of zeros between ones "gap" in binary representation of an integer
Parameters
----------
x : int
input integer value
Returns
----------
max_gap : int
the maximum gap length
"""
try:
# Convert int to binary
b = "{0:b}".format(x)
# Iterate from right to lift
# Start detecting gaps after fist "one"
for i,j in enumerate(b[::-1]):
if int(j) == 1:
max_gap = max([len(i) for i in b[::-1][i:].split('1') if i])
break
except ValueError: …Run Code Online (Sandbox Code Playgroud) 要将某些数字打印为二进制格式,我们只需使用.format()方法,如下所示:
# Binary
for i in range(5+1):
print("{0:>2} in binary is {0:>08b}".format(i))
0 in binary is 00000000
1 in binary is 00000001
2 in binary is 00000010
3 in binary is 00000011
4 in binary is 00000100
5 in binary is 00000101
Run Code Online (Sandbox Code Playgroud)
对于其他格式(十六进制和八进制)的打印也是如此,只需要将后者的花括号替换为我们要打印的数字即可。但是,有没有办法使用新f""字符串替换.format()命令?我知道这看似微不足道,但我在试用新功能时不胜其烦,此外还f""使代码更短,更易读。
for i in range(5+1):
print(f'{0:>2} in binary is {0:>08b}')
# This prints out just 0s
Run Code Online (Sandbox Code Playgroud) 我已经尝试将其转换为字符串,添加0到它,但它仍然只显示十进制值,我怎样才能让它显示它的二进制值?
如果我尝试这个:
binary = 0b010
print(binary)
Run Code Online (Sandbox Code Playgroud)
或这个:
binary = 0b010
print(str(binary))
Run Code Online (Sandbox Code Playgroud)
输出如下:
2
Run Code Online (Sandbox Code Playgroud)
我也尝试过这个:
binary = 0b010
print("{0:b}".format(binary))
Run Code Online (Sandbox Code Playgroud)
输出如下:
10
Run Code Online (Sandbox Code Playgroud)
期望的输出:
010
Run Code Online (Sandbox Code Playgroud)
不好的部分是它没有填充左边的 0 的数量,它给了我一个10我想要的输出010,但我希望它显示我输入的任何二进制可能的 0 的数量。
我是Python新手,但每次我寻找如何做到这一点时,在我看来,它只是从整数转换为二进制并显示它。但我无法使用该bin()功能,所以我直接在这里询问,谢谢您的理解。
A = 3
DECIMAL BINARY SET BIT COUNT
1 01 1
2 10 1
3 11 2
Run Code Online (Sandbox Code Playgroud)
1 + 1 + 2 = 4
代码如下
def solve(A):
ad = ''
for i in range(A + 1):
ad += str(bin(i).replace('ob',''))
return ad.count('1')
Run Code Online (Sandbox Code Playgroud)
使用按位
def solve(A):
count = 0
for i in range(A + 1):
while i > 0:
i= i & (i-1)
count += 1
return (count)
Run Code Online (Sandbox Code Playgroud)
Time Limit Exceeded.用户输入一个 8 个字符的字符串,然后将其转换为字符串并放入要播放的数组中。
有了这 8 位数字,我希望能够将它们转换为 32 位二进制,例如
整数 = 12,345,678
整数 = -10,000,000
1111 1111 0110 0111 0110 1001 1000 0000
System.out.print("Please enter an 8 digit number");
System.out.println();
Scanner user_input = new Scanner( System.in );
StudentID = user_input.nextLine();
sID = Integer.parseInt(StudentID);
String ss[] = StudentID.split("");
StudentID = Integer.toBinaryString(sID);
while(loop >= 0){
d[loop] = Integer.parseInt(ss[loop]) ;
loop--;
}
Run Code Online (Sandbox Code Playgroud)我试过使用“StudentID = Integer.toBinaryString(sID);” 然而,它不会产生加 0 来组成 …
python ×10
binary ×5
python-3.x ×3
bit ×1
decimal ×1
f-string ×1
formatting ×1
integer ×1
java ×1
search ×1