Buch Cover Buch Cover Buch Cover Buch Cover

Web-Code: - Webcode Help

Binärcode Reader (zu Zeichen umwandeln) (Zeichenketten)

Code ein Programm, dass einen Binärcode in Zeichen umwandelt!

Zu Zeichen zählen Kleinbuchstaben, Großbuchstaben und Sonderzeichen wie "?" oder "!".

Was bedeutet dieser Binärcode: "010010000110000101101100011011000110111100100001" ?

2 Kommentare

Bitte melde dich an um einen Kommentar abzugeben

Kommentare (2)

virgil 10. Oktober 2016 23:59   reply report
Ich glaube schon, dass wir mittlerweile zu Unicode fortgeschritten sind— wurde ja auch mal Zeit. Gibt es echt noch Systeme, die mit Unicode nicht klarkommen? Sehr bedauerlich.Da mag man auch gerne noch in Java programmieren, wenn man das will.

Für mich war nach einigem Rumprobrieren eigentlich klar, worum es geht: Teilung der Bits in 8-Abteilungen, und da ASCII/ANSII quasi gleich mit dem UTF-Spektrum sind, ist die Aufgabe letzten Endes ordinär.
gressly 8. Oktober 2016 23:32   reply report
Die Aufgabenstellung ist nicht klar. Soll EBCDIC, ASCII, Ansi oder gar UTF verwendet werden?
Für den Löser der Aufgabe spielt dass dann eine Rolle, wenn sein System (z. B. PL/I auf dem Großrechner) kein ASCII kennt und obiger Code ausgewertet werden sollte. Eventuell kann man hier einen zweiten Binärcode angeben oder die Aufgabe etwas präzisieren.

5 Lösung(en)

public class Main {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		System.out.print("Binärcode eingeben: ");

		String line = sc.nextLine().replace(" ", "");
		String splitt = Arrays.toString(line.split("(?<=\\G........)"));
		String[] splitted = splitt.replace("[", "").replace("]", "").split(", ");

		sc.close();

		for (String s : splitted) {
			if (s.length() == 8) {
				int i = Integer.parseInt(s, 2);
				System.out.print((char) i);
			} else {
				for (int i = 0; i < 100; i++) {
					System.out.println("ERROR");
				}
			}
		}
	}
}
                

Lösung von: Linus Götz (Lichtenberg-Gymnasium Cuxhaven)

function bin2txt(input) {
  var output = "",
      i = 0;
  for (i; i < input.length; i += 8)
    output += String.fromCharCode(parseInt(input.substr(i, 8), 2));
  return output;
}

console.log(bin2txt("010010000110000101101100011011000110111100100001"));
                

Lösung von: Lisa Salander (Heidi-Klum-Gymnasium Bottrop)

import binascii

class binary_reader():
	# From Words to Binary
	def w2b(self):
		print "Please type in your words or sentence to convert them into binary code:"
		words = raw_input(">> ")
		wordsTObinary = bin(int(binascii.hexlify(words), 16)).replace("0b", "")

		print wordsTObinary



	# From Binary to Words
	def b2w(self):
		print "Please type in your binary code to convert them into words or a sentence:"
		b = raw_input(">> ")
		binaries = int(b, 2)
		binaryTOwords = binascii.unhexlify("%x" % binaries)

		print binaryTOwords




if __name__ == '__main__':
    binary_reader().w2b()
    binary_reader().b2w()

                

Lösung von: L. Fino (Lupfig Codes)

'3.3.2017 - PowerBASIC 10
'mit integrierter Umwandlung Binär -> Unicode


#COMPILE EXE
#DIM ALL

FUNCTION PBMAIN () AS LONG

DIM i AS INTEGER
DIM strIn AS STRING
DIM strOut AS STRING

strIn = "010010000110000101101100011011000110111100100001"

FOR i = 1 TO LEN(strIn) STEP 8
   strOut = strOut & CHR$$(VAL("&B" & MID$(strIn,i,8)))
NEXT i

MSGBOX strIn & $CRLF & strOut,,EXE.NAME$

END FUNCTION

                

Lösung von: Markus Sägesser (keine)

'4.3.2017 - PowerBASIC 10
'"manuelle" Umrechnung


#COMPILE EXE
#DIM ALL

FUNCTION PBMAIN () AS LONG

DIM i AS INTEGER
DIM x AS INTEGER
DIM strIn AS STRING
DIM strOut AS STRING
DIM zwStr AS STRING
DIM revStr AS STRING
DIM zwByte AS INTEGER
DIM ascii AS STRING

strIn = "010010000110000101101100011011000110111100100001"

ascii = "!" & $DQ & "#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz"

'in 8 Bits splitten
FOR i = 1 TO LEN(strIn) STEP 8
    zwStr = MID$(strIn,i,8)
   'Reihenfolge der Bits umdrehen, um einfacher zu rechnen.
    FOR x = 8 TO 1 STEP - 1
        revStr += MID$(zwStr,x,1)
    NEXT x
    'Wert der Bits anhand der Position errechnen (2^Position - 1 * Wert der Position) -> 2^3 = 8 * 0 (falls nicht gesetzt) oder * 1 (falls gesetzt)
    FOR x = 1 TO 8
        zwByte += 2^(x-1) * VAL(MID$(revStr,x,1))
    NEXT x
    strOut += MID$(ascii,zwByte - 32,1)
    revStr = ""
    zwByte = 0
NEXT i

MSGBOX strIn & $CRLF & strOut,,EXE.NAME$

END FUNCTION

                

Lösung von: Markus Sägesser (keine)

Verifikation/Checksumme:

Lösung: "Hallo!"

Aktionen

Bewertung

Durchschnittliche Bewertung:

Eigene Bewertung:
Bitte zuerst anmelden

Meta

Zeit: 0.5
Schwierigkeit: Mittel
Webcode: h8nk-ecsd
Autor: ()

Download PDF

Download ZIP

Zu Aufgabenblatt hinzufügen