Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/312.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python中二进制文字到二进制字符串的转换_Python_String_Binary_Literals - Fatal编程技术网

python中二进制文字到二进制字符串的转换

python中二进制文字到二进制字符串的转换,python,string,binary,literals,Python,String,Binary,Literals,我想将二进制文字(如0b01011)转换为二进制字符串(如0101101)。 我该怎么进去 这里假设A=81十六进制 >>> a = bin(int(str('A'),16)) >>> print a 返回0b1010,我想要1000001个二进制字符串,我并不真正理解你的要求,但你可以做你已经在做的事情,然后切掉0b: 当您输入二进制文字时,它会变成一个数字。数字不依赖于二进制或任何其他基的表示;它只是存储为一个整数值。因此,无论您是否将其作为二进制文本

我想将二进制文字(如0b01011)转换为二进制字符串(如0101101)。 我该怎么进去

这里假设A=81十六进制

>>> a = bin(int(str('A'),16))
>>> print a 

返回0b1010,我想要1000001个二进制字符串,我并不真正理解你的要求,但你可以做你已经在做的事情,然后切掉0b:


当您输入二进制文字时,它会变成一个数字。数字不依赖于二进制或任何其他基的表示;它只是存储为一个整数值。因此,无论您是否将其作为二进制文本输入,您仍然可以使用bin来获取其二进制字符串表示形式。

使用python较新的字符串处理:

>>> print '{:08b}'.format(81)
01010001

>>> print '{:08b}'.format(ord('A'))
01000001
“08”指定的输出大小为8,并用零填充,因此在默认情况下,该值显示整个字节。如果没有零,它将填充空格:

>>>  print '{:8b}'.format(ord('A'))
 1000001
如果没有“8”,则输出字符串仅与所需大小相同:

>>> print '{:b}'.format(ord('A'))
1000001
您需要使用ord函数将字符串“A”转换为相应的ASCII字符。将str应用于“A”没有任何效果。然后可以将该整数转换为二进制字符串,因此:

>>> print ord('A')
65
>>> a = bin(ord('A'))
>>> print a
0b1000001
如果不需要“0b”前缀:


据我所知,根据评论,您得到的数字为整数:

然后你想把它解释成十六进制。为了做到这一点,将其转换为字符串注意,我正在转换一个变量a,而不是字符串“a”:

然后将其转换为int base 16:

int(str(A), 16)
最后将其转换为二进制表示:

bin(int(str(A), 16))
并从第二个位置获取所有字符,包括前两个:

bin(int(str(A), 16))[2:]

您打算如何从数字10或数字129中获得1010110?如果你只是不想把0b放在前面,你可以用[2:]把它切掉。试试格式化81,“b”。我的意思是我想把任何二进制文字转换成相应的字符串。所以不要考虑我在字面上和斯特林格写的东西,我猜你在寻找:Bin Trima,16(2:)注意缺少@ USER 309838:当然,很好,但是编辑你的问题,所以它告诉你你有什么数据和你想要的输出。所写的问题没有意义,似乎与您试图做的事情没有任何关系。请看,在将A=81 A放入十六进制后,我得到了二进制文本0b1010,尽管它的二进制字符串表示形式是10000001,这就是我所说的want@user3098378:你用十六进制表示A是什么意思?你是怎么用十六进制写的?或者只是用“{:b}”来写的。如果你不想指定要使用的最小字符数的话,格式是81。是的。我没有得到所需的输出,但不同的输出相同inputs@AshwiniChaudhary这怎么不正确呢?这个答案是根据原始问题中的代码编写的,在上面的评论讨论之前。目前还不清楚海报的确切要求,但如果他们接受了,可能会有一些有用的内容。@user3098378请澄清您的问题。你问的问题太多了。你有什么输入,你想要什么输出格式?假设我的输出是6bit 101001或71001110位,我想在开始时加0,使其成为8位输出,怎么做?还有,告诉我们,只有在python看到输出不是8位的时候,是否可以自动执行此操作?@gavin我得到了最初问题的答案,现在是我上面提出的另一个问题。假设我的输出是6位101001或71001110位,我想在开始时添加0,使其成为8位输出,如何执行?还告诉我们,只有在python看到输出不是8位时,才可以自动执行此操作吗?@user3098378如果将最终结果存储在变量x中,那么之后只需执行x=0*maxSIZE lenx,0+x并定义SIZE=6或7或之前需要的任何操作。请参见,它应该是8位。如果它返回8,则没有0的填充,如果小于0,则相应地保留0的填充
str(A)
int(str(A), 16)
bin(int(str(A), 16))
bin(int(str(A), 16))[2:]