Escriba una función o programa que genere una base Quater-imaginary mostrada como dígitos binarios. La base numérica es 2 i , donde i es la raíz cuadrada de -1. Ver número complejo para más detalles sobre i . Cada posición de dígito puede ir de 0 a 3 (cuaternario), ya que cada parte real e imaginaria es -4 veces más grande que la parte real e imaginaria anterior. Los dígitos cuaternario en binario son como sigue: 0: 00
, 1: 01
, 2: 10
y 3: 11
.
Desglose de posiciones de dígitos:
re im 16 -8i -4 2i 1 -0.5i, etc.
4 0 1 0 3 0 0 (quaternary representation)
01 00 11 00 00 (binary representation)
El número 100110000
es 1x16 + 3x-4 = 16 + -12 = 4.
re im 16 -8i -4 2i 1 -0.5i, etc.
0 5 0 0 0 3 0 2 (quaternary representation)
00 00 00 11 00 .10 (binary representation)
El número 1100.1
es 3x2 i + 2x-0.5 i = 6 i + - i = 5 i .
Su código tomará un par de números, que podrían ser enteros o de coma flotante, y generará el número complejo como una cadena de dígitos binarios. El primer número será real, el segundo número de entrada será el valor imaginario. Un punto binario solo debe imprimirse si hay posiciones de números distintos de cero por debajo de 1 (es decir, si alguna de las posiciones para -0.5 i , -0.25, 0.125 i , etc. tiene un dígito distinto de cero). Los ceros iniciales y finales no están permitidos, a excepción de un solo dígito cero inmediatamente antes del punto binario si no hay otros dígitos. La salida no debe comenzar con un punto binario (* 00.1
- incorrecto, 0.1
- correcto, * .1
- incorrecto, * 0.10
- incorrecto). Puede suponer que todos los números de entrada tendrán representaciones binarias finitas.
Números de prueba:
re im output
0 0 0
1 0 1
2 0 10
3 0 11
4 0 100110000
-1 0 10011
-2 0 10010
-3 0 10001
0 1 100.1
0 2 100
0 3 1000.1
0 4 1000
0 -1 0.1
0 -2 1001100
0 -3 1001100.1
3 4 1011
4 3 100111000.1
6 -9 101110010.1
-6 9 10011100110.1
-9 -6 1110111
0.5 14.125 10011001101.001001
Nota: La salida de todos los valores enteros terminará .1
si la parte imaginaria es impar.
Código estándar de golf.
0 → 00, 1 → 01, 2 → 10, 3 → 11
.