For Mandelbrot and Julia sets, range -8.0 to +8.0 suffices for the range of the complex number components, including intermediate values. So, you can trivially use e.g. Q3.60, or 64-bit signed integers with 60 fractional bits, for the computation. After all, these just iterate $$z_{n+1} = z_n^2 + c, \quad z, c \in \mathbb{C}$$to see if it diverges, whenever \$\lvert z_n \rvert \gt R\$, \$R \in \mathbb{R}\$. Such points are typically colored based on the smallest \$n\$ for which \$\lvert z_n \rvert \gt R\$ is true.

Mandelbrot set uses \$z_0 = 0\$, with \$c\$ identifying the point on the complex plane, and \$R \ge 2\$. Julia set uses \$z_0\$ for the point on the complex plane, \$c\$ as an arbitrary constant, and \$R \ge (1 + \sqrt{4 \lvert c \rvert + 1})/2\$. You can use a larger \$R\$, since the point is to find if the sequence diverges or not, and the specified \$R\$ are just the minimum values.

When zooming very deep, floating point allows one to discern more details in the set. For small \$n\$, the complex number components are very small, and tend to either cycle (within the set), or grows more or less steadily (not enough so to help much with the checks, though).

If we use \$z_n = r_n + \mathbb{i} i_n\$ and \$c = r_c + \mathbb{i} i_c\$, then

$$z_{n+1} = \left( r_n^2 - i_n^2 + r_c \right) + \mathbb{i} \left( 2 r_n i_n + i_c \right)$$

i.e.

$$\begin{aligned}

r_{n+1} &= r_n^2 - i_n^2 + r_c \\

i_{n+1} &= 2 r_n i_n + i_c \\

\end{aligned}$$

Each iteration involves three multiplications and three additions or subtractions, plus one doubling of a product; or two squarings, one double product, and three additions or subtractions. If any of the operations overflow, the sequence diverges, and that point belongs to the set. All three multiplications can be done in parallel; you can obviously also do multiple points in parallel (which is easier when using vector extensions like SSE, AVX, or NEON).