hilfdirselbst.ch
Facebook Twitter gamper-media
"Funktioniert nicht" ist keine hinreichende Fehlerbeschreibung.
sk77
Beiträge: 2
20. Mai 2004, 19:09
Beitrag #1 von 3
Bewertung:
(3703 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Umwandeln von Dezimalzahl -> Dualzahl


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>
Top
 
X
oesi50  A  S
Beiträge: 2315
20. Mai 2004, 19:32
Beitrag #2 von 3
Beitrag ID: #86487
Bewertung:
(3703 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Umwandeln von Dezimalzahl -> Dualzahl


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)
als Antwort auf: [#86484] Top
 
Markus Walker  M 
Beiträge: 494
21. Mai 2004, 13:23
Beitrag #3 von 3
Beitrag ID: #86571
Bewertung:
(3703 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Umwandeln von Dezimalzahl -> Dualzahl


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.
als Antwort auf: [#86484] Top