簡體   English   中英

當number大於位數時,在python中將數字格式化為定長二進制

[英]Formatting number as fixed-length binary in python when number is larger than number of bits

我正在嘗試將數字轉換為固定長度的二進制表示形式。 我嘗試使用

>>> "{0:04b}".format(number)

當數字可以用四位(0-15)完全表示時,此方法有效,但是即使數字超出范圍,我也需要字符串始終為四位長。 例如,

>>> "{0:04b}".format(17)

應該返回“ 0001”,而不是“ 10001”。

我知道我只能索引結果字符串的最后4位,但是我想知道是否有更優雅的解決方案。

沒有通用方法可以限制整數轉換的寬度。 但是,您可能要針對特定​​情況使用特定方法。

如果不想在生成字符串后減少它,則可以減少輸入數字。 由於您只對低階四位感興趣,所以& 0xf應該為您隔離那些:

"{0:04b}".format(number & 0xF)

另外,您可以調用兩次format ,一次轉換整數,一次限制結果字符串的字段寬度。 這是相當不可讀的,所以我不建議這樣做:

"{0:4.4s}".format("{0:04b}".format(number))

暫無
暫無

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

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