簡體   English   中英

將整數轉換為具有可變位數的二進制

[英]Converting integer to binary with variable number of bits

我想從給定的列表list選擇一個數字,並從n位表示中提取出一個位置。

我知道如果我想要8位,我需要寫

r = random.choice(list)
bin = "{0:08b}".format(r)

但我想做點什么

bin = "{0:0(self.n)b}".format(r)

其中n是一個類成員。

我該怎么做呢?

您可以使用嵌套的{…}來定義大小:

bin = "{0:0{1}b}".format(r, self.n)

使用Py2.7 +,如果你發現更干凈,你可以省略數字:

bin = "{:0{}b}".format(r, self.n)

例如:

>>> "{:0{}b}".format(9, 8)
'00001001'

從python3.6開始,您將能夠使用Literal String Interpolation ,將變量名稱添加到您的字符串中。

In [81]: pad,num = 8,9

In [82]: f"{num:0{pad}b}"
Out[82]: '00001001'

使用str.format,您還可以使用名稱:

In [92]: pad,num = 8,9

In [93]: "{n:0{p}b}".format(n=num, p=pad)
Out[93]: '00001001'

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM