Escreva uma função ou programa que emita a base imaginária do quarto exibida como dígitos binários. A base numérica é 2 i , onde i é a raiz quadrada de -1. Consulte Número complexo para obter mais detalhes sobre i . Cada posição de dígito pode ir de 0 a 3 (quaternário), pois cada parte real e imaginária é -4 vezes maior que a parte real e imaginária anterior. Os dígitos quaternários em binário são as seguintes: 0: 00
, 1: 01
, 2: 10
e 3: 11
.
Repartição das posições dos 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)
O número 100110000
é 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)
O número 1100.1
é 3x2 i + 2x-0,5 i = 6 i + - i = 5 i .
Seu código terá um par de números, que pode ser inteiro ou ponto flutuante, e produzirá o número complexo como uma sequência de dígitos binários. O primeiro número será real, o segundo número de entrada será o valor imaginário. Um ponto binário deve ser impresso apenas se houver posições numéricas diferentes de zero abaixo de 1 (ou seja, se alguma das posições para -0,5 i , -0,25, 0,125 i , etc. tiver um dígito diferente de zero). Zeros à esquerda e à direita não são permitidos, exceto por um único dígito zero imediatamente antes do ponto binário, se não houver outros dígitos. A saída não deve começar com um ponto binário (* 00.1
- errado, 0.1
- certo, * .1
- errado, * 0.10
- errado). Você pode assumir que todos os números de entrada terão representações binárias finitas.
Números de teste:
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: A saída de todos os valores inteiros terminará .1
se a parte imaginária for ímpar.
Código-golfe padrão.
0 → 00, 1 → 01, 2 → 10, 3 → 11
.