How to Convert 33.9 to Binary?

Click For Summary
SUMMARY

The conversion of the decimal number 33.9 to binary involves separating the integer and fractional parts. The integer part, 33, converts to binary as 100001, while the fractional part, 0.9, is converted using repeated multiplication by 2, resulting in an infinitely repeating binary equivalent of 0.1110011... The recommended method for conversion is to handle the integer and fractional parts separately, as outlined in the discussion. Resources such as the article on base conversion in PHP and a binary converter tool are provided for further assistance.

PREREQUISITES
  • Understanding of binary number system
  • Familiarity with decimal to binary conversion techniques
  • Knowledge of multiplication and division operations
  • Basic programming concepts for using conversion tools
NEXT STEPS
  • Learn about binary division for long division in binary
  • Explore the algorithm for decimal to binary conversion in PHP
  • Research methods for converting decimal numbers to octal and hexadecimal
  • Practice using online decimal/binary converters for verification
USEFUL FOR

Students, educators, and anyone interested in understanding number base conversions, particularly in computer science and programming contexts.

Trentonx
Messages
36
Reaction score
0

Homework Statement


Convert 33.9 to binary.


Homework Equations


Division by two and remainders


The Attempt at a Solution


I'm unsure since it is .9. Using the dividing by two method with the remainders wouldn't account for that. Could I do something like this?
33.9 = 339 *10^-1, convert to binary (101010011) and then account for the scientific notation in some way?
 
Physics news on Phys.org
think about the 'divide by two' method with 1/2, 1/4,1/8 etc
 
It's easiest if you just do the integer part and fractional part separately. Convert the integer part as usual. For the fractional part, multiply by 2, pick off the integer part, and repeat the process with the new fractional part. For example, for 13/16=0.8125=0.11012, you'd do

0.8125 x 2 = 1.625
0.625 x 2 = 1.25
0.25 x 2 = 0.5
0.5 x 2 = 1.0
 
Trentonx said:
Could I do something like this?
33.9 = 339 *10^-1, convert to binary (101010011) and then account for the scientific notation in some way?

You could proceed this way, though it would be cumbersome; it requires long division in binary. 339 = 101010011, and 10 = 1010 (you know how to convert to integers so those two conversions are straightforward). Then do the division: 101010011/1010 (Sorry, I tried to put the long division here but the formatting didn't work.) In any case, you'd find that 33.9 has an infinitely repeating binary equivalent, which is 100001.1(1100) (the part in parentheses is the repeating part).

But @vela's way is the way I recommend doing it.

I have two things on my site that may help you:

This article, with more details on the algorithm: http://www.exploringbinary.com/base-conversion-in-php-using-bcmath/ (see section labeled "dec2bin_f())"

A decimal/binary converter to check your answers: http://www.exploringbinary.com/binary-converter/
 
Except for the bit where the binary is infinite, that's not too bad. Thanks for the help. On a related note does vela's way work to convert to octal and hexadecimal the same way?
 
Trentonx said:
Except for the bit where the binary is infinite, that's not too bad.
That's just like the fact that the decimal representation of 1/3=0.33333... requires an infinite number of 3s.
On a related note does vela's way work to convert to octal and hexadecimal the same way?
Yes, as long as you realize you're multiplying by the base you're using. Say a number has the base-b representation (0.d_1d_2d_3d_4\cdots)_b. When you multiply by b, you shift each digit to the left, so you get (d_1.d_2d_3d_4\cdots)_b, so the integer part is the first digit in the representation. You can get the subsequent digits by discarding the integer part and repeating the process.
 
vela said:
Yes, as long as you realize you're multiplying by the base you're using. Say a number has the base-b representation (0.d_1d_2d_3d_4\cdots)_b. When you multiply by b, you shift each digit to the left, so you get (d_1.d_2d_3d_4\cdots)_b, so the integer part is the first digit in the representation. You can get the subsequent digits by discarding the integer part and repeating the process.

Actually, you're multiplying by the base you're converting to. In this case, we're multiplying a decimal number by 2 to convert to binary. To convert to hex, you would multiply the decimal number by 16; to convert to octal, you would multiply the decimal number by 8.
 

Similar threads

  • · Replies 10 ·
Replies
10
Views
4K
  • · Replies 10 ·
Replies
10
Views
2K
  • · Replies 2 ·
Replies
2
Views
1K
  • · Replies 2 ·
Replies
2
Views
3K
  • · Replies 1 ·
Replies
1
Views
2K
Replies
2
Views
3K
  • · Replies 2 ·
Replies
2
Views
2K
Replies
1
Views
2K
  • · Replies 8 ·
Replies
8
Views
5K
Replies
5
Views
5K