Base converter with fractions?

01262017, 06:57 PM
(This post was last modified: 01262017 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 nonnegative 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 roundoff 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 base2 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)