1. Limited time only! Sign up for a free 30min personal tutor trial with Chegg Tutors
    Dismiss Notice
Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

Homework Help: Hex to Oct

  1. May 6, 2009 #1
    1. The problem statement, all variables and given/known data
    Convert the hexadecimal (base 16) value FACE.BE into octal (base 8), correct
    to 2 octal places.

    2. Relevant equations

    3. The attempt at a solution
    First, I've converted the FACE.BE to decimals and I got 64206.742188

    Next I change them to octal
    64206(dec) = 175316(oct)

    However, I'm unsure with the 0.742188
    I continued my solution by treating it is 742188 and got 2651454

    If that's the case, my answer is 175316.27(oct).
    Is this answer correct?
    Any quicker way to do it like Octal to Hexadecimal without the need to convert into Decimal first.
  2. jcsd
  3. May 6, 2009 #2
    I realized I made a mistake.

    0.742188 should give 0.574 instead.

    1. Answer is 175316.57?
    2. Any quicker way to convert from Hex to Oct?
  4. May 6, 2009 #3


    User Avatar
    Science Advisor
    Homework Helper

    Yes, each hex digit is two octal digits.
    Take the hex digit, if it is less than 8 it's already octal - just put an 0 in front.
    If it's more than 8, subtract 8, and put a 1 in front of the result.

    eg. F = 1 7 ( ie 1*8 + 7)
  5. May 6, 2009 #4
    It would be relatively easy if you convert hex into binary (1 hex digit gives 4 digits of binary) and then regrouping the resulting number 3 digits at a time to make octal digits, starting from the decimal point.
    Your answer for the integral part is correct, but you can confirm it using the binary conversion.
    The fractional part is represented by fractions, for example:
    0.123= 1/10 + 2/100 + 3/1000 (in decimal)
    0.BE = B/16 + E/256 (in hex)
    (Yes, 0.BE (hex) gives 0.574 (octal))
    0.257 = 2/8 + 5/64 + 7/512 (in Octal)

    The procedure of grouping 3 binary digits to represent octal digits for the fractional part is the same as in the integral part, namely you must start the grouping from the decimal point towards the right, and pad remaining digits with zeroes if the number of non-zero digits to the right of the decimal (or rather octal) point is not divisible by 3.
  6. May 6, 2009 #5
    Does this only work for a single Hex?
  7. May 6, 2009 #6
    A hex digit is actually 4/3 of an octal digit. So for example, FFF hex = 7777 octal.

    The best way to see this is to convert hex to binary, then binary to octal.
  8. May 6, 2009 #7
    I get it now - partially.

    FACE = 1111 1010 1100 1110
    regroup = 001 111 101 011 001 110
    Oct = 175316

    But for .BE, it is not possible to do likewise but to use the method you suggest
    0.BE = B/16 + E/256

    Is this right?
  9. May 6, 2009 #8
    I see. This means if converting a single hex I can use as mgb_phys suggested right?
    example F(hex) = 17(oct).

    Anything more than one hex will not work.
    Like FFF(hex) = 7777(oct).
  10. May 7, 2009 #9
    For one hex digit, and if it's to the left of the radix point -- yes, mgb_phys's method works. But why have two methods? The "write hex in binary and regroup to octal" method that mathmate outlines will work for any number of digits, and is easy to apply on both sides of the radix point (just remember to pad 0s away from the radix point).
  11. May 7, 2009 #10
    Just to be clear, let's spell out the whole solution, using the regroup method for the entire number (you got the integer part -- I'm just adding the fractional part):

    FACE.BE = 1111 1010 1100 1110.1011 1110
    regroup = 001 111 101 011 001 110.101 111 100
    Oct = 175316.574
  12. May 7, 2009 #11
    Thanks DoctorBinary. I fully understand where my mistake is now.

    .BE = .1011 1110
    regroup = .010 111 110
    Oct = .276
    That's why I thought we can't apply the same to the fractional part. But now I got it.

    Thanks to mgb_phys and mathmate as well :)
  13. May 7, 2009 #12


    User Avatar
    Science Advisor
    Homework Helper

    It's worth noting that the figures to the right of the decimal point are only used in maths HW questions.
    Sorry for my confusion on the fractional part - in computers real numbers are stored as IEEE floating point format.
  14. May 7, 2009 #13
    Hmm, seems like you've taken a step backwards. Why did you rewrite the fractional part? The way I had it was correct:

    .BE = .1011 1110
    regroup = .101 111 100
    Oct = .574

    To the right of the radix point you pad the 0s to the right, not left!
  15. May 7, 2009 #14
    I got it. I was showing what I did earlier which resulted in my mistake :)
Share this great discussion with others via Reddit, Google+, Twitter, or Facebook