FB18 - Das Forum für Informatik

fb18.de / Diplom Informatik / Unterbereich Grundstudium / Technische Informatik

T3: Datentypen in C gesucht (byte, bit, Fließkommazahlen)

T3: Datentypen in C gesucht (byte, bit, Fließkommazahlen) 2004-11-23 23:35
Anonymer User
wie kann in einem C Programm eine Gnazzahl in eine Binärzahl umwandeln.

Ich habe mir dedacht, dass ich als Ganzhal einen int-wert habe, z.b. int a = 13.

Hat C auch einen Datentyp wie z.b. byte oder bit? Wie kann das ineinander konverniteren?

Oder aber: man führt die rechnung iergendwie in einer schleife aus, also die zahl immer sdurch zwei teilen und dann sehen, ob das Ergbenis wieder eine int zahl, oder einen rest von ,5 hat -> aber dann müsste man ja Zahlen mit nachkommastellen haben, hat die C ? wie heissen diese datentypen?

EditTri: Bitte vernünftige Topictitel

Re: T3: Datentypen in C gesucht (byte, bit, Fließkommazahlen) 2004-11-23 23:37
sChQrf
wend doch einfach das verfahren an, dass du in t1 gelernt hast… [img]http://www.fb18.de/gfx/24.gif[/img]

13 : 2 = 6, Rest 1 (hinterste Zahl) 6 : 2 = 3, Rest 0 3 : 2 = 1, Rest 1 1 : 2 = 0, Rest 1also: 1101

Re: T3: Datentypen in C gesucht (byte, bit, Fließkommazahlen) 2004-11-23 23:41
Fred
Der Topictitel ist ja mal wieder super… [img]http://www.fb18.de/gfx/22.gif[/img]

wie kann in einem C Programm eine Gnazzahl in eine Binärzahl umwandeln.
"Binär" ist nur eine von vielen möglichen Darstellungsweisen einer Ganzzahl. Eine "Umwandlung" findet also streng genommen gar nicht statt.

Hat C auch einen Datentyp wie z.b. byte oder bit?
Byte wird in manchen .h Dateien als unsigned char definiert, also eine Zahl zwischen 0 und 255 (oder zwischen 0 und 0xFF oder zwischen 0 und 11111111b, je nachdem, wie man sie betrachtet).

Oder aber: man führt die rechnung iergendwie in einer schleife aus, also die zahl immer sdurch zwei teilen und dann sehen, ob das Ergbenis wieder eine int zahl, oder einen rest von ,5 hat
Schau doch einfach vor der Division, ob es sich um eine gerade oder eine ungerade Zahl handelt (dies siehst Du am niederwertigsten Bit, welches Du per &1 erhältst).

Re: T3: Datentypen in C gesucht (byte, bit, Fließkommazahlen) 2004-11-23 23:43
Eddie
Das Umwandeln ist meiner Meinung nach nicht so das Problem, aber ich frage mich, in welcher Form die Ausgabe erfolgen soll…

Re: T3: Datentypen in C gesucht (byte, bit, Fließkommazahlen) 2004-11-23 23:43
Lümmel
wie kann in einem C Programm eine Gnazzahl in eine Binärzahl umwandeln.
Also wenn ich die T3 Aufgaben richtig verstanden habe, sollst Du die Ganzzahl2Binary Funktion in ASM implementieren.


Hat C auch einen Datentyp wie z.b. byte oder bit? Wie kann das ineinander konverniteren?
Du sollst keine fertige Funktion benutzen oder einfach nur zwei Datentypen casten, sondern die Funktion selbst implementieren.

Oder aber: man führt die rechnung iergendwie in einer schleife aus
So ist es IMO gemeint…

also die zahl immer sdurch zwei teilen und dann sehen, ob das Ergbenis wieder eine int zahl, oder einen rest von ,5 hat -> aber dann müsste man ja Zahlen mit nachkommastellen haben, hat die C ? wie heissen diese datentypen?
Einfacher ist es mit Bitmasken und Shiften… Stichworte: AND/OR/SLL/SRL

Re: T3: Datentypen in C gesucht (byte, bit, Fließkommazahlen) 2004-11-23 23:45
Fred
Das Umwandeln ist meiner Meinung nach nicht so das Problem, aber ich frage mich, in welcher Form die Ausgabe erfolgen soll…
Eingabe: 80
Ausgabe: 1000110

Also wenn ich die T3 Aufgaben richtig verstanden habe, sollst Du die Ganzzahl2Binary Funktion in ASM implementieren.
Richtig! Nur sollte einem bewusst sein, dass die binäre Ausgabe prinzipiell ähnlich funktioniert wie die dezimale oder die hexadezimale (wie würdet Ihr die ausgeben, wenn printf nur Strings ausgeben könnte?).

Re: T3: Datentypen in C gesucht (byte, bit, Fließkommazahlen) 2004-11-23 23:53
Eddie
Ist da irgendeine Zahl von Stellen vorgegeben, oder soll das flexibel sein?

Re: T3: Datentypen in C gesucht (byte, bit, Fließkommazahlen) 2004-11-24 00:15
Fred
Ist da irgendeine Zahl von Stellen vorgegeben, oder soll das flexibel sein?
Entweder konstant 32 Bit oder nur die signifikanten Stellen… such Dir was aus!

Re: T3: Datentypen in C gesucht (byte, bit, Fließkommazahlen) 2004-11-24 00:42
Anonymer User
Hat C auch einen Datentyp wie z.b. byte oder bit? Wie kann das ineinander konverniteren?

Ist nicht alles nur eine Aneinanderreihung von Bits?

Re: T3: Datentypen in C gesucht (byte, bit, Fließkommazahlen) 2004-11-24 00:48
Anonymer User
Ist nicht alles nur eine Aneinanderreihung von Bits?

Nein. Das Bit ist keine.

Re: T3: Datentypen in C gesucht (byte, bit, Fließkommazahlen) 2004-11-24 12:26
TriPhoenix
Ein Bit kann man auch als aneinnanderreihung verstehen wenn man will [img]http://www.fb18.de/gfx/15.gif[/img] Aber wenn man so anfaengt: alle sim Rechner ist zwangslaeufig eine Aneinanderreihung von Bits

Re: T3: Datentypen in C gesucht (byte, bit, Fließkommazahlen) 2004-11-24 16:52
Anonymer User
hm, dass die ausgabe in der art
eingabe 80
ausgabe 1010000
erfolgen soll ist klar.
ich versteh aber nicht, mit welchem datentyp das in c passieren soll? char, char[] oder doch ganz anders?????

Re: T3: Datentypen in C gesucht (byte, bit, Fließkommazahlen) 2004-11-24 16:54
TriPhoenix
Die Zahl kommt in C als ein Integer rein. Die Ausgabe soll dein Assemblercode mit printf machen, also nichts an das aufrufende C-Programm zurückgeben.

Re: T3: Datentypen in C gesucht (byte, bit, Fließkommazahlen) 2004-11-24 20:09
Brokkoli
hmm wenn mans in ein char[] schreibt was man dann ausgibt ist auch nicht schlimm oder?

Re: T3: Datentypen in C gesucht (byte, bit, Fließkommazahlen) 2004-11-24 20:10
TriPhoenix
hmm wenn mans in ein char[] schreibt was man dann ausgibt ist auch nicht schlimm oder?

Absolut nicht, ist sogar eleganter. Aber das String-Konzept ist für viele Leute in C erstmal eklig, deswegen ist printf drinnen ansich auch ok.

Re: T3: Datentypen in C gesucht (byte, bit, Fließkommazahlen) 2004-11-24 20:14
Anonymer User
also ich versteh nun gar nichts mehr..
sollen wir die aufgabe in c lösen und dann in .s converten lassen und das ergebnis dieses umwurschtelns dann abgeben?
oder sollen wir das ohne c programm in ASM direkt selbst schreibn?

Re: T3: Datentypen in C gesucht (byte, bit, Fließkommazahlen) 2004-11-24 20:19
UncleOwen
sollen wir die aufgabe in c lösen und dann in .s converten lassen und das ergebnis dieses umwurschtelns dann abgeben?

Sofern Du das Ergebnis des "umwurschtelns" verstehst… ansonsten wohl lieber selber schreiben

Re: T3: Datentypen in C gesucht (byte, bit, Fließkommazahlen) 2004-11-24 20:21
Anonymer User
sagen wirs so..
wenn ich das selber schreiben müsste/würde..ich hab absolut keinen plan, wie ich da rangehn soll in ASM…
kann mir da jmd. nen ansatz-tip geben?

Re: T3: Datentypen in C gesucht (byte, bit, Fließkommazahlen) 2004-11-24 20:40
Brokkoli
hmm hast du die letzten aufgabenzettel nicht gelöst? ;)
also ich würd dir empfehlen erstmal das programm in c zu schreiben, dann in assembler umwandeln lassen und dann jeden befehl durchgehen und verstehen… (mit dem buch was wir da gekriegt haben geht das eigentlich..) und dann ein wenig verbessern oder so ;)

Re: T3: Datentypen in C gesucht (byte, bit, Fließkommazahlen) 2004-11-24 20:51
Anonymer User
den letzten zettel konnt ich ja leider auch nicht lösen..
ich weiss einfach nicht, wie ich anfangen soll…

Re: T3: Datentypen in C gesucht (byte, bit, Fließkommazahlen) 2004-11-24 20:58
TriPhoenix
Wenn man noch nicht so in Assembler geübt ist, hilfts durchaus in C zu schrieben und den Assemblercode zu verstehen. Wenn man das hat kann man das Ding entweder selber schreiben oder den generierten Code so umschrieben, dass er noch funktioniert, der Übungsleiter den Unterschied zu nem selbstgeschriebenen aber nicht mehr merkt (indem man unnötig Komlizierte Dinge zusammenfasst z.B.)