# Representing a binary number

Suppose you wanted to write the number 100000. If you type it in ASCII, this would take 6 characters (which is 6 bytes). However, if you represent it as unsigned binary, you can write it out using 4 bytes.

My question: $\log_2 100,000 \approx 17$. So that means I need 17 bits to represent 100,000 in binary, which requires 3 bytes. So why does it say 4 bytes?

-

This is more of a computer science/engineering question than a math question.

Look at http://www.cs.umd.edu/class/sum2003/cmsc311/Notes/Data/unsigned.html. It asks you to "assume that a typical unsigned int uses 32 bits of memory." Programming languages and processors usually use an even number of bytes to represent data.

-

You can, in fact, write it out using three bytes. My current project uses 3-byte integers extensively, to save memory in an embedded system.

-
I'm just curious. Was the processor 8-bit? –  Joel Reyes Noche Jan 13 '12 at 8:45
Yes, it's an 8051 derivative, the P5CD081 from NXP. See this link if you're interested: nxp.com/products/identification_and_security/smart_card_ics/… –  TonyK Jan 13 '12 at 9:11
Thanks for the link. I used to work with microprocessors but not microcontrollers, so I usually thought in terms of bigger word sizes. I also understand that some microcontrollers use word sizes that are not multiples of 8 (like some versions of the PIC, which use 12-bit words, if I'm not mistaken). –  Joel Reyes Noche Jan 13 '12 at 12:00

As Joey tels you, the reason is that numbers are usually stored in the data type "integer", which (almost) always comes in 32 bit variants. The processor is taylormade to add/subtract/multiply integers of exactly this size, otherwise, you'll need 32*32*(number of operations) different circuits for every combination of number of bits, which is a huge waste of space.

-
Very much depending on the languages age/version, and chipsizes. Think of embedded devices. –  user unknown Jan 13 '12 at 9:27
Well, if you read the question, you will see that in THIS instance, an int is exactly 32 bit = 4 bytes. No need to make things complicated. –  Paxinum Jan 15 '12 at 19:39