{"id":15345897,"url":"https://github.com/niklasmerz/ieee-754-app","last_synced_at":"2026-03-07T11:30:18.863Z","repository":{"id":28688319,"uuid":"32208384","full_name":"NiklasMerz/IEEE-754-APP","owner":"NiklasMerz","description":"Schulprojekt","archived":false,"fork":false,"pushed_at":"2016-02-11T11:30:29.000Z","size":8775,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2024-12-31T12:48:56.554Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/NiklasMerz.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-03-14T11:36:10.000Z","updated_at":"2018-03-23T21:27:48.000Z","dependencies_parsed_at":"2022-08-29T00:02:08.473Z","dependency_job_id":null,"html_url":"https://github.com/NiklasMerz/IEEE-754-APP","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NiklasMerz%2FIEEE-754-APP","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NiklasMerz%2FIEEE-754-APP/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NiklasMerz%2FIEEE-754-APP/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NiklasMerz%2FIEEE-754-APP/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/NiklasMerz","download_url":"https://codeload.github.com/NiklasMerz/IEEE-754-APP/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239898462,"owners_count":19715212,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-01T11:17:22.275Z","updated_at":"2026-03-07T11:30:18.801Z","avatar_url":"https://github.com/NiklasMerz.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# IEEE-754-APP\n\n\u003ccode\u003e Only available in German\u003c/code\u003e\u003cbr\u003e\n\nEin Beispiel wie man mit Java die Umwandlung in Binärcode darstellen kann. Der Code dient als Beispiel für eine Programmierübung. \n## Android App zum Anzeigen von Gleitkommazahlen nach IEE 754\n\n\u003ca href=\"https://play.google.com/store/apps/details?id=de.merz.ieee_754\u0026utm_source=global_co\u0026utm_medium=prtnr\u0026utm_content=Mar2515\u0026utm_campaign=PartBadge\u0026pcampaignid=MKT-AC-global-none-all-co-pr-py-PartBadges-Oct1515-1\"\u003e\u003cimg alt=\"Get it on Google Play\" src=\"https://play.google.com/intl/en_us/badges/images/apps/de-play-badge.png\"/\u003e\u003c/a\u003e\n\nLinks\n-------\n[Github](https://github.com/NiklasMerz/IEEE-754-APP)\n[Google Play Store](https://play.google.com/store/apps/details?id=de.merz.ieee_754)\n##[JavaDoc](http://niklasmerz.github.io/IEEE-754-APP/JavaDoc/)\n\n_____________________________________________________________________________________________________________________\n\n# IEEE 754 Rechner Android Dokumentation\n\n## Aufgabe\n\nAufgabe für dieses Projekt ist die Erstellung eines Programmes, das eine Gleitkommazahl in Dezimalschreibweise in den Binärcode der Datentypen Single/Float und Double nach IEEE 754 umwandelt.\n\n\n## Projektziel\nDie Anwendung soll ein Feld zur Eingabe, eine Auswahlmöglichkeit zwischen Single und Double und eine Ausgabe des Binärcodes haben. Der Binärcode soll farblich, für die Teile Vorzeichen, Charakteristik und Mantisse, formatiert werden.\nDie Oberfläche soll einen Tutorialcharakter haben.\n\n## Projektablauf\nDas Programm wird als Android App erstellt. Als IDE (=Entwicklungsumgebung) wird Eclipse mit den Android Plug-ins und dem Android SDK genutzt. Die Oberfläche soll ein Feld zu Eingabe einer Dezimalzahl, eine Auswahl des Datentyps, und eine Legende der Farben für die Teile des Binärcodes haben. Die Schaltflächen zum Umwandel wird eine Java Methode ausführen, die Zahl in Binärcode umandelt, den String aufteilt und diesen farbig darstellt.\n\n\u003cu\u003eDer Algorithmus zur Umwandlung soll mit Java umgesetzt werden: \u003c/u\u003e \u003cbr\u003e\nDas Programm hat eine Klasse mit allen Methoden die für die Oberfläche und die Umwandlung notwendig sind. Eine der wichtigsten Methoden ist die Methode \"calculate\", die ausgeführt wird wenn der Knopf zum Umwandeln gedrückt wird. Diese Methode führt je nach gewähltem Datentyp dann die Methode convertToSingle bzw. convertToDouble aus. Diese Methoden wandeln mit Java Methoden, die die Datentype Float bzw. Double von Haus aus besitzen die eingegebene Dezimalzahl in Binärcode nach IEEE 754 um.\nDieser Binärcode wird dann um vorangestellte Nullen ergänzt und entsprechend der Bestandteile farblich geteilt ausgegeben.\n\nDer wichtigste Teil des Programms sind diese drei Zeilen\n\n\u003ccode\u003e\nnumber = Float.valueOf(value); \u003cbr\u003e\nbits = Float.floatToRawIntBits(number); \u003cbr\u003e\nresult = Integer.toBinaryString(bits);\u003cbr\u003e\n\u003c/code\u003e\n\nDer eingebene Wert wird in das Datenformat Float umgewandelt. Mit der Methode \u003ccode\u003eFloat.flaotToRawIntBits()\u003c/code\u003e kann Java den Binärcode des Floatwertes in einen Integerwert ausgeben, der dann mit \u003ccode\u003eInteger.toBinaryString()\u003c/code\u003e in einen String umgewandelt wird.\n\nDieser String wird dann in die drei Bestandteile, die mit der Norm festgelegt wurden, zerlegt. Das erste Bit legt das Vorzeichen fest und wird rot markiert. Eins bedeutet die Zahl ist negativ und ist das Bit Null ist die Zahl positiv. Die nächsten acht bit legen die Charaketistik fest. Die Charakteristik beschreibt den Exponeten zur Basis 2 multiplieziert mit dem Bias (2^n-1 - 1), wobei n die Anzahl der zur Verfügung stehenden Bits ist. Die restlichen Bits nennt man Mantisse, also die Basis.\n\n\n\nDas Programm kann zusätzlich noch die Zahl im Format Double darstellen. Der Binärcode hat in diesem Format 64 Bit und kann dementsprechend einen größeren Zahlenbereich abdecken.\n\n\n\n\n\nAndroid, Google Play und das Google Play-Logo sind Marken von Google Inc.   \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fniklasmerz%2Fieee-754-app","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fniklasmerz%2Fieee-754-app","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fniklasmerz%2Fieee-754-app/lists"}