Forenindex » Programmierung/Entwicklung » JavaScript » Umwandeln von Dezimalzahl -> Dualzahl

Umwandeln von Dezimalzahl -> Dualzahl

sk77
Beiträge gesamt: 2

20. Mai 2004, 19:09
Bewertung:

gelesen: 6726

Beitrag als Lesezeichen
Hallo,

ich habe ein Javascript geschrieben mit dem ich Dezimalzahlen
durch Eingabe in Dualzahlen umwandeln möchte.

Leider funktioniert die Umrechnung nicht einwandfrei, da mir
das Programm als Dualzahl immer den gleichen Wert ausgibt, den ich für
die Dezimalzahl einsetze, d.h. wenn ich "7" eingebe, dann erhalte ich im Dualfeld ebenfalls als Ergebnis die "7" dargestellt!

ich vermute es liegt an der Zeile:

var Dualzahl = Dezimalzahl.toString(2);

Sofern ich das "toString(2)" ersetze durch z.B. "+5" errechnet er mir
einen korrekten Ausgabewert (-wenn auch nicht dual!)

Kann mir jemand bitte die Zeile korrigieren damit die Umrechnung funktioniert?

Vielen Dank im voraus.

MfG

Stefan


<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

<TITLE>2.2.2 Geschäftsbereich Informationstechnik</TITLE>

<script type="text/javascript">

function Umrechner ()

{
var Dezimalzahl=0;
var Dualzahl=0;

{
var Dezimalzahl = document.Dezidual.Dezimal.value;

var Dualzahl = Dezimalzahl.toString(2);
}

document.Dezidual.Dual.value=Dualzahl;
}

</script>

</head>
<BODY>
<H1>Berechnung Dualzahlen aus Dezimalzahlen</H1>

<Form name="Dezidual">

<TABLE border=1>

<TR>
<TH>Dezimalzahl</TH>
<TH>Dualzahl</TH></TR>
<TR>
<TH>Eingabe Dezimalzahl</TH>
<TH>Ausgabe Dualzahl</TH></TR>
<TR>

<TD align="center">
<INPUT type="text" name="Dezimal" size="50"></TD>

<TD align="center">
<INPUT type="text" name="Dual" size="50"></TD>
</TR>

<TR>
<TD colspan="1" align="center">
<input type="reset" VALUE="Werte Löschen"></TD>

<TD colspan="1" align="center">
<input type="button" value="Berechnung" onClick="Umrechner ()">
</TD>
</TR>

</Table>
</Form>

</Body>

</Html>

Umwandeln von Dezimalzahl -> Dualzahl

oesi50
  
Beiträge gesamt: 2315

20. Mai 2004, 19:32
Bewertung:

gelesen: 6726

Beitrag als Lesezeichen
Da fällt mir spontan das Horner-Schema ein.
Und dazu 2 Möglichkeiten:
mit shift und einer Bitmaske
oder
Division mit Rest(Modulo)

Grüße Oesi
Ich weiß, dass ich nichts weiß... (Sokrates)

Umwandeln von Dezimalzahl -> Dualzahl

Markus Walker
Beiträge gesamt: 494

21. Mai 2004, 13:23
Bewertung:

gelesen: 6726

Beitrag als Lesezeichen
Das hier ist wieder mal so eine Sache mit den dynamischen Type-Konversionen von JavaScript. Dies ist zuweilen ganz praktisch, im Vorliegenden Fall halt etwas irreführend.
Das Property «value» von einem Feld enthält den Wert als String. Somit ist die Variable «Dezimalzahl» vom Type String (kann mit typeof() überprüft werden). Da die Methode «toString()» in jedem Objekt enthalten ist, wird hier halt aus einem String ein anderer String umgewandelt.

Damit die Variable «Dezimalzahl» zum Datentyp Number umgewandelt wird, kann sie z.B. mit 1 multipliziert werden. Somit würde dann die Variable wiefolgt eingelesen:

var Dezimalzahl = document.Dezidual.Dezimal.value * 1;


Übrigens, für die Umwandlung in die andere Richtung bietet sich die Methode «parseInt()» an.