Binäre Darstellung (Datentypen, Variablen und Ausdrücke)
- Stellen Sie im Binärsystem dar: 14, 33, 54, 100, 1000, 3737
- Stellen Sie die folgenden Binärzahlen im Dezimalsystem dar: 1001, 1110, 100 1011, 1 0110 1110, 11 0011 0111 1101
- Berechnen Sie binär, indem Sie die folgenden Dezimalzahlen zuerst in das Binärsystem verwandeln, danach (binär) addieren und das Resultat wieder in das Dezimalsystem zurückverwandeln.
- 5 + 8
- 19 + 22
- 7 + 15
- 192 + 258
2 Kommentare
4 Lösung(en)
# Umwandlung dez -> bin und bin --> dez
def test():
print ('14 --> '+bin(14))
print('33 --> '+bin(33))
print('54 --> '+bin(54))
print('100 --> '+bin(100))
print('1000 --> '+bin(1000))
print('3737 --> '+bin(3737))
print('1001 --> '+str(int('1001',2)))
print('1110 --> '+str(int('1110',2)))
print(' 100 1011 --> '+str(int('1001011',2)))
print('1 0110 1110 --> '+str(int('101101110',2)))
print('11 0011 0111 1101 --> '+str(int('11001101111101',2)))
test()
Lösung von: Martin Guggisberg (Universität Basel / PH FHNW)
package ch.programmieraufgaben.binaer;
import java.util.Scanner;
public class Binaer {
public static void main(String[] args) {
new Binaer().top();
}
void top() {
while(true) {
String wahl = menu();
switch(wahl) {
case "dec2bin" : dec2bin(); break;
case "bin2dec" : bin2dec(); break;
case "addbin" : addbin(); break;
default:
System.out.println("Abbruch");
System.exit(0);
}
}
}
void addbin() {
long l1 = einlesenLong("Bitte erste dezimale Zahl eingeben:");
long l2 = einlesenLong("Bitte zweite dezimale Zahl eingeben:");
System.out.println("L1 : " + Long.toBinaryString(l1));
System.out.println("L2 : " + Long.toBinaryString(l2));
System.out.println("Summe: " + Long.toBinaryString(l1+l2) + " (2)");
System.out.println("Summe: " + (l1 + l2) + " (10)");
}
void bin2dec() {
String bin = einlesenString("Bitte binäre Zahl eingeben:");
long lng = Long.parseLong(bin, 2);
System.out.println("Dezimal: " + lng);
}
void dec2bin() {
long dez = einlesenLong("Bitte Dezimalzahl (>0) eingeben:");
System.out.println("Binär: " + Long.toBinaryString(dez));
}
Scanner sc = new Scanner(System.in);
String einlesenString(String frage) {
System.out.println(frage);
return sc.next();
}
long einlesenLong(String frage) {
System.out.println(frage);
return sc.nextLong();
}
String menu() {
System.out.println("Was wollen Sie tun:");
System.out.println("\"dec2bin\": Dezimal in binär umwandeln.");
System.out.println("\"bin2dec\": Binär in dezimal umwandeln.");
System.out.println("\"addbin\": Addiere Dezimalzahlen binaer.");
System.out.println("Eingabe:");
return sc.next();
}
} // end of class Binaer
Lösung von: Philipp G. Freimann (BBW (Berufsbildungsschule Winterthur) https://www.bbw.ch)
<?php
//Vorraussetzung ist das die Werte vorher via POST-Formular übergeben werden
$dezimal = $_POST['bin'];
$binaer = $_POST['dez'];
$dezimalbin = bindec($dezimal);
echo "$dezimal ist im Dezimalsystem: $dezimalbin<br /> \n";
$binaerdez = decbin($binaer);
echo "$binaer ist im Binaersystem: $binaerdez";
?>
Lösung von: Tim Otlik (Leica Camera AG)
// Wer komische aufgaben sät, wird komischen code ernten.
var decimals = [14, 33, 54, 100, 1000, 3737];
document.write("<p>");
for (var x = 0; x < decimals.length; x++)
document.write(
decimals[x] + "<sub>10</sub>" + " = " +
decimals[x].toString(2) + "<sub>2</sub><br>"
);
document.write("</p>");
var binaries = [1001, 1110, 1001011, 101101110, 11001101111101];
document.write("<p>");
for (x = 0; x < binaries.length; x++)
document.write(
binaries[x] + "<sub>2</sub>" + " = " +
parseInt(binaries[x], 2) + "<sub>10</sub><br>"
);
document.write("</p>");
var additions = ["5 + 8", "19 + 22", "7 + 15", "192 + 258"];
document.write("<p>");
for (x = 0; x < additions.length; x++) {
var addition = additions[x].split("+");
document.write(
addition[0] + "<sub>10</sub> + " + addition[1] + "<sub>10</sub> = " +
parseInt(addition[0]).toString(2) + "<sub>2</sub> + " +
parseInt(addition[1]).toString(2) + "<sub>2</sub>" +
" = " + eval(addition.join("+")).toString(2) + "<sub>2</sub>" +
" = " + eval(addition.join("+")) + "<sub>10</sub><br>"
);
}
document.write("</p>"); // lissalanda@gmx.at
Lösung von: Lisa Salander (Heidi-Klum-Gymnasium Bottrop)
Verifikation/Checksumme:
a) 1110, 10 0001, 11 0110, 110 0100, 11 1110 1000, 1110 1001 1001
b) 9, 14, 75, 366, 13 181
Aktionen
Neue Lösung hinzufügen
Bewertung
Durchschnittliche Bewertung:
Meta
Zeit: | 0.5 |
Schwierigkeit: | k.A. |
Webcode: | i55j-5v5u |
Autor: | Philipp G. Freimann (BBW (Berufsbildungsschule Winterthur) https://www.bbw.ch) |
Kommentare (2)
http://www.wolframalpha.com/input/?i=convert+100+to+base+2