10

Is there a builtin function that converts ASCII to binary?

For example. converts 'P' to 01010000.

I'm using Python 2.6.6

3 Answers 3

17

How about two together?

bin(ord('P'))
# 0b1010000
Sign up to request clarification or add additional context in comments.

4 Comments

What does the 0b mean at the start of it
@Steve that is actually unusable binary, its only 7 characters, "P" is 01010000 but that code is removing the leading 0, outputting only 1010000 which is only 7 characters and therefore unusable
@Cripto 0b means the number is expressed in binary (base 2). 0x would mean hexadecimal (base 16).
@DevonM Leading zeros don't matter.
8

Do you want to convert bytes or characters? There's a difference.

If you want bytes, then you can use

# Python 2.x
' '.join(bin(ord(x))[2:].zfill(8) for x in u'שלום, עולם!'.encode('UTF-8'))

# Python 3.x
' '.join(bin(x)[2:].zfill(8) for x in 'שלום, עולם!'.encode('UTF-8'))

The bin function converts an integer to binary. The [2:] strips the leading 0b. The .zfill(8) pads each byte to 8 bits.

Comments

0
bin(reduce(lambda x, y: 256*x+y, (ord(c) for c in "Hello world"), 0))

this is for multiple characters

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.