Schreiben Sie eine Funktion oder ein Programm, das eine als Binärziffern angezeigte Quater-Imaginary-Basis ausgibt . Die Zahlenbasis ist 2 i , wobei i die Quadratwurzel von -1 ist. Weitere Informationen zu i finden Sie unter Komplexe Nummer . Jede Ziffernposition kann von 0 bis 3 (quaternär) gehen, da jeder Real- und Imaginärteil -4-mal so groß ist wie der vorherige Real- und Imaginärteil. Die quaternären Ziffern in binär sind wie folgt: , , & .0: 00
1: 01
2: 10
3: 11
Aufschlüsselung der Ziffernpositionen:
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)
Die Zahl 100110000
ist 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)
Die Zahl 1100.1
ist 3x2 i + 2x-0,5 i = 6 i + - i = 5 i .
Ihr Code verwendet ein Zahlenpaar, das eine Ganzzahl oder ein Gleitkomma sein kann, und gibt die komplexe Zahl als Binärziffernfolge aus. Die erste Zahl ist real, die zweite eingegebene Zahl ist der imaginäre Wert. Ein Binärpunkt darf nur gedruckt werden, wenn eine von Null verschiedene Ziffernposition unter 1 liegt (dh wenn eine der Positionen für -0,5 i , -0,25, 0,125 i usw. eine von Null verschiedene Ziffer hat). Führende und nachfolgende Nullen sind nicht zulässig, mit Ausnahme einer einzelnen Nullstelle unmittelbar vor dem Binärpunkt, sofern keine anderen Stellen vorhanden sind. Die Ausgabe darf nicht mit einem Binärpunkt beginnen (* 00.1
- falsch, 0.1
- richtig, * .1
- falsch, * 0.10
- falsch). Sie können davon ausgehen, dass alle Eingabenummern endliche Binärdarstellungen haben.
Testnummern:
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
Hinweis: Die Ausgabe aller ganzzahligen Werte endet, .1
wenn der Imaginärteil ungerade ist.
Standard Code-Golf.
0 → 00, 1 → 01, 2 → 10, 3 → 11
.