Base converter with fractions?
|
01-26-2017, 06:57 PM
(This post was last modified: 01-26-2017 07:35 PM by Han.)
Post: #6
|
|||
|
|||
RE: Base converter with fractions?
Here's the math for this specific example. A general program is left as an exercise for the diligent reader.
3.142 = 3 + 0.142 Convert the whole number part into base 7. Since it is only 3, then we are done. This leaves 0.142 for conversion to \( 0.d_1 d_2 d_3 \dotsm \) where the \( d_i \) are 0 through 6. Note that if we multiply the fractional part by 7 then we will get a value that is non-negative and strictly less than 7. \[ \begin{align*} 0.142 & = 0.d_1 d_2 d_3 \dotsm \\ 7\cdot 0.142 & = d_1 + 0.d_2 d_3 d_4 \dotsm\\ 0.994 & = d_1 + 0.d_2 d_3 d_4 \dotsm \\ \end{align*} \] Therefore \( d_1 = 0 \). Now repeat... \[ \begin{align*} 0.994 & = 0. d_2 d_3 d_4 \dotsm \\ 7\cdot 0.994 & = d_2 + 0.d_3 d_4 d_5 \dotsm\\ 6.958 & = d_2 + 0.d_3 d_4 d_5 \dotsm \\ \end{align*} \] Therefore \( d_2 = 6 \). Rinse and repeat (subtract the integer part and repeat for the fractional part) for as many digits as you need. There should be no round-off error when using BCD math (until you get to bases where the "digits" are represented by more than a single numeral in base 10 -- hence the \( 12/\log_{10}(b) \) limitation), but you might possibly be off using the HP Prime's base-2 representation of floating points. EDIT: For those who just want the answer: The integer portion of a number can be converted to various bases using known methods. The "hard" part is the fractional portion. However, the fraction portion \( d \) is always such that \( 0 \le d < 1 \). So if \( b \) is the base, then \( 0 \le bd < b \). If \( 0.d_1 d_2 d_3 \dotsm \) is the base-\(b\) representation of \(d \), then \( bd\) is \( d_1 + 0.d_2 d_3 d_4 \dotsm \). Hence \( d_1 \) is the integer part of \( bd \). Graph 3D | QPI | SolveSys |
|||
« Next Oldest | Next Newest »
|
User(s) browsing this thread: 1 Guest(s)