我正在尝试使用Python中的bin()函数将整数转换为二进制。但是,它总是删除前导零,这是我实际需要的,因此结果总是8位:
例子:
bin(1) -> 0b1
# What I would like:
bin(1) -> 0b00000001
有办法做到这一点吗?
我正在使用
bin(1)[2:].zfill(8)
将打印
'00000001'
>>> '{:08b}'.format(1)
'00000001'
请参阅:格式规范小型语言
注意:对于Python2.6或更早版本,您不能在:
之前省略位置参数标识符,因此请使用
>>> '{0:08b}'.format(1)
'00000001'
使用格式()
函数:
>>> format(14, '#010b')
'0b00001110'
格式化()
函数简单地按照格式规范迷你语言格式化输入。#
使格式包括0b
前缀,并且010
大小将输出格式设置为适合10个字符的宽度,并使用0
填充;0b
前缀的2个字符,另一个8代表二进制数字。
这是最简洁、最直接的选择。
如果要将结果放入较大的字符串中,请使用格式化字符串文字(3.6)或使用str.format()
,并将format()
函数的第二个参数置于占位符{:}的冒号之后
:
>>> value = 14
>>> f'The produced output, in binary, is: {value:#010b}'
'The produced output, in binary, is: 0b00001110'
>>> 'The produced output, in binary, is: {:#010b}'.format(value)
'The produced output, in binary, is: 0b00001110'
事实上,即使只是格式化单个值(因此不将结果放入较大的字符串中),使用格式化字符串文字也比使用
format()
:
>>> import timeit
>>> timeit.timeit("f_(v, '#010b')", "v = 14; f_ = format") # use a local for performance
0.40298633499332936
>>> timeit.timeit("f'{v:#010b}'", "v = 14")
0.2850222919951193
但我只会在紧密循环中的性能很重要时使用它,如
格式(…)
可以更好地传达意图。
如果不需要
0b
前缀,只需删除#
并调整字段长度:
>>> format(14, '08b')
'00001110'
我想做的是将用户输入的任何高达2^32-1的数字转换为仅使用位运算符的二进制值。经过多次挠头和修补,我得出了这个结论,似乎给了我想要的...几乎: 现在我的问题是:这确实会输出正确的二进制字符串,但我需要删除前导零,以便十进制数10在二进制中显示为1010,而不是0000000000000000000000 1010。 我是第一学期的计算机科学专业的学生,所以任何关于解决问题的帮助或清理代码的提示
编者按:此代码示例来自Rust 1.0之前的版本,并且在语法上是无效的Rust 1.0代码。此代码的更新版本会产生不同的错误,但答案仍然包含有价值的信息。 肯定有更好的方法将二进制字符串转换为十六进制字符串比这? 这样做的结果是 我用的是Rustc0.12。夜间
我如何将一个写为二进制的字符串转换为二进制(字节数组)? 如果我有一个字符串: 下面是当我将二进制设置为字节数组时发生的情况(字节数组返回48,这是ASCII) 我不擅长解释,所以希望上面的例子足以告诉你我想要什么。
我正在尝试将数字从十进制值转换为其IEEE 752形式。例如: 我写了这个方法: 有个问题我解决不了,我再举个例子说清楚。 但是当数字为负数时,例如 我收到以下错误: 这意味着我的代码可以完美地处理正数(包括零),但如果是负数,代码就会崩溃。问题出在哪里? 笔记 我想我可以用这种方式解决我的问题 检查是否有一个字符At(0)等于1 如果是(numero.charAt(0)==1),则删除第一个字符
本文向大家介绍如何将八进制转换为二进制?,包括了如何将八进制转换为二进制?的使用技巧和注意事项,需要的朋友参考一下 八进制数是基数为8的数字系统之一,这意味着只有8个符号−0、1、2、3、4、5、6和7。而二进制数是数字系统、网络和计算机专业人员最熟悉的数字系统。基2只有2个符号−0和1,这些数字可以分别用off和on表示。 从八进制转换为二进制数制 将八进制数转换成二进制数有多种直接或间接的方法
本文向大家介绍十进制到二进制转换,包括了十进制到二进制转换的使用技巧和注意事项,需要的朋友参考一下 十进制数字也可以转换为二进制格式。要将十进制数转换为二进制数,我们需要将数字除以2,直到达到0或1。然后,在每一步骤中,其余部分将分开存储以形成相反的二进制等效数。 在此算法中,我们将遵循递归方法。这将帮助我们在不使用堆栈数据结构的情况下解决问题。在实现中,我们知道函数的递归将遵循内部堆栈。我们将使