diff --git a/scapy/asn1/asn1.py b/scapy/asn1/asn1.py
index 26baaa4af9886f03bcc3f72f95472b2907f70a34..1611d355102ef5131c23aef2a9033e2d507141e9 100644
--- a/scapy/asn1/asn1.py
+++ b/scapy/asn1/asn1.py
@@ -263,7 +263,7 @@ class ASN1_BIT_STRING(ASN1_Object):
     def __init__(self, val, readable=False):
         if readable:
             self.val_readable = val
-            val = "".join(format(ord(x), 'b').zfill(8) for x in val)
+            val = "".join(bin(ord(x))[2:].zfill(8) for x in val)
             self.unused_bits = 0
         else:
             if len(val) % 8 == 0:
diff --git a/scapy/asn1/ber.py b/scapy/asn1/ber.py
index 4a0288979c2062ba1d1e92862eadb73d169e1e54..ba431b4c530b49623f1a67e7a207fa932bb6c3e0 100644
--- a/scapy/asn1/ber.py
+++ b/scapy/asn1/ber.py
@@ -277,7 +277,7 @@ class BERcodec_BIT_STRING(BERcodec_Object):
             unused_bits = ord(s[0])
             if safe and unused_bits > 7:
                 raise BER_Decoding_Error("BERcodec_BIT_STRING: too many unused_bits advertised", remaining=s)
-            s = "".join(format(ord(x), 'b').zfill(8) for x in s[1:])
+            s = "".join(bin(ord(x))[2:].zfill(8) for x in s[1:])
             if unused_bits > 0:
                 s = s[:-unused_bits]
             return cls.tag.asn1_object(s),t
diff --git a/scapy/asn1fields.py b/scapy/asn1fields.py
index 242fb8ec093f0563b1dbb16e07ef5146f2352e38..e1fefd07b774ccb1ade2da2f8333f8127f952228 100644
--- a/scapy/asn1fields.py
+++ b/scapy/asn1fields.py
@@ -199,7 +199,7 @@ class ASN1F_BIT_STRING(ASN1F_field):
     def __init__(self, name, default, default_readable=True, context=None,
                  implicit_tag=None, explicit_tag=None):
         if default is not None and default_readable:
-            default = "".join(format(ord(x), 'b').zfill(8) for x in default)
+            default = "".join(bin(ord(x))[2:].zfill(8) for x in default)
         ASN1F_field.__init__(self, name, default, context=context,
                              implicit_tag=implicit_tag,
                              explicit_tag=explicit_tag)
@@ -522,7 +522,7 @@ class ASN1F_BIT_STRING_ENCAPS(ASN1F_BIT_STRING):
             s = ""
         else:
             s = str(x)
-        s = "".join(format(ord(x),'b').zfill(8) for x in s)
+        s = "".join(bin(ord(x))[2:].zfill(8) for x in s)
         return ASN1F_BIT_STRING.i2m(self, pkt, s)
 
 class ASN1F_FLAGS(ASN1F_BIT_STRING):