Ernie |
Zahlensystemerechner
Tipp drauf los!
Hexadezimalzahl
Binärzahl
Dezimalzahl
Wie ist das möglich? Mit Pyscript, was eine Mischung aus Python (zur Berechnung), JavaScript (für die Datenvermittlung zwischen Python und HTML) und HTML (zur Darstellung) möglich macht. :)
Hier der Code:
<!DOCTYPE html>
<html>
<head>
<title>HTML and Python Converter</title>
<link rel="stylesheet" href="https://pyscript.net/releases/2024.1.1/core.css" />
<script type="module" src="https://pyscript.net/releases/2024.1.1/core.js"></script>
</head>
<body>
<p>
Hexadezimalzahl<br />
<input id="hexBox1" size="35" placeholder="Hexadecimal input" type="text" py-input="umrechnerAusHex"/><br />
Binärzahl<br />
<input id="binBox2" size="35" placeholder="Binary input" type="text" py-input="umrechnerAusBin"/><br />
Dezimalzahl<br />
<input id="decBox3" size="35" placeholder="Decimal input" type="text" py-input="umrechnerAusDec"/>
</p>
</p>
(Hilfe Herr Feller fragt wieder Zahlensysteme mit anderer Basis ab!)<br />
<input id="basisBox" placeholder="Basis zwischen 2-36" type="text" py-input="umrechnerAndererBasis"/>
<input id="basisBoxZahl" placeholder="Zahl" type="text" py-input="umrechnerAndererBasis"/>
</p>
<py-script>
import js
def umrechnerAndererBasis(self):
try:
if (js.document.getElementById("basisBox").value) and int(js.document.getElementById("basisBox").value)>=2 and js.document.getElementById("basisBoxZahl").value:
neueBasis = True
neuerBasisWert = int(js.document.getElementById("basisBox").value)
umzurechnendeZahl = js.document.getElementById("basisBoxZahl").value
else:
neueBasis = False
except ValueError:
neueBasis = False
try:
if neueBasis:
js.document.getElementById("decBox3").value = int(umzurechnendeZahl, neuerBasisWert)
js.document.getElementById("binBox2").value = bin(int(umzurechnendeZahl, neuerBasisWert))[2:]
js.document.getElementById("hexBox1").value = hex(int(umzurechnendeZahl, neuerBasisWert))[2:]
else:
js.document.getElementById("hexBox1").value = ""
js.document.getElementById("binBox2").value = ""
js.document.getElementById("decBox3").value = ""
except ValueError:
js.document.getElementById("decBox3").value = "Basis (2-36) und Zahl richtig angeben"
js.document.getElementById("binBox2").value = "Basis (2-36) und Zahl richtig angeben"
js.document.getElementById("hexBox1").value = "Basis (2-36) und Zahl richtig angeben"
def umrechnerAusHex(self):
hexCheckBox = js.document.getElementById("hexBox1").value
try:
if int(hexCheckBox, 16):
isHex = True
else:
isHex = False
except ValueError:
isHex = False
if hexCheckBox and isHex == True:
js.document.getElementById("binBox2").value = bin(int(hexCheckBox,16))[2:]
js.document.getElementById("decBox3").value = int(hexCheckBox,16)
js.document.getElementById("basisBox").value = ""
js.document.getElementById("basisBoxZahl").value = ""
else:
js.document.getElementById("binBox2").value = ""
js.document.getElementById("decBox3").value = ""
js.document.getElementById("basisBox").value = ""
js.document.getElementById("basisBoxZahl").value = ""
def umrechnerAusBin(self):
binCheckBox = js.document.getElementById("binBox2").value
try:
if int(binCheckBox, 2):
isBin = True
else:
isBin = False
except ValueError:
isBin = False
if binCheckBox and isBin == True:
binInDec = int(binCheckBox,2)
js.document.getElementById("hexBox1").value = hex(binInDec)[2:]
js.document.getElementById("decBox3").value = binInDec
js.document.getElementById("basisBox").value = ""
js.document.getElementById("basisBoxZahl").value = ""
else:
js.document.getElementById("hexBox1").value = ""
js.document.getElementById("decBox3").value = ""
js.document.getElementById("basisBox").value = ""
js.document.getElementById("basisBoxZahl").value = ""
def umrechnerAusDec(self):
tempFeld = js.document.getElementById("decBox3").value
try:
if int(tempFeld):
isDec = True
else:
isDec = False
except ValueError:
isDec = False
if js.document.getElementById("decBox3").value and isDec == True:
decCheckBox = int(tempFeld)
js.document.getElementById("hexBox1").value = hex(decCheckBox)[2:]
js.document.getElementById("binBox2").value = bin(decCheckBox)[2:]
js.document.getElementById("basisBox").value = ""
js.document.getElementById("basisBoxZahl").value = ""
else:
js.document.getElementById("hexBox1").value = ""
js.document.getElementById("binBox2").value = ""
js.document.getElementById("basisBox").value = ""
js.document.getElementById("basisBoxZahl").value = ""
</py-script>
</body>
</html>
Version 1.2.0