Weiß einer wie die Umrechnung von Kommazahlen ins Binärsystem gehen.
z. B. 12,5 ins Binärsystem als eine 16 Bit-Folge?
eigentlich ist es ja so dass man einfach die kommazahl * 2 macht
bsp:
0.562=1,12 1 0,122=0,24 0 . . . . usw.
aber hier kann ich das nicht machen da die zahl viel größer ist also mich irritiert die 12 vor dem Komma und die 16 Bits.

Einfach durch additive Zerlegung:
Ganzzahl vor dem Komma
+
Dezimalzahlen
also die 12 dazuzählen!
Dein Beispiel 12,5(dezimal):
1100 (12) + 0,1 (0,5) = 1100,1
PS: Hab die 16 bit vergessen... ich glaube, dass man noch die Mantisse angeben muss. Müsste grad nochmal danach schauen.

der computer kann selbstverständlich nur ganzzahlen ablegen, daher bedient man sich eines kleinen tricks.
man erweitert die zahlen, bis kein komma mehr vorhanden ist und rechnet damit.
Am schluss werden in einem extra byte gespeichert, an wievelter stelle von rechts sich das imaginäre komma befindet.
Zum benutzer hin wird die zahl dann natürlich als text angezeigt.
Entweder mit einer festen zahl von nachkommastellen oder variabel als sogenannte fliesskommazahl (in wissenschaftlicher schreibweise 1.xxxx*10^n oder xxxx.xxxx)
aber auch als programmierer kommt man mit der internen speicherung kaum in berührung, das erledigt der compiler.
KOmmazahlen brauchen auf maschinenebene so ab 24 bit aufwärts, je nach bedarf des zahlenvorats weden auch längere typen zur verfügung gestellt.
Gute Frage. Hab noch nie gesehen das man Binär Kommazahlen "schreiben" kann. Wäre mir auch neu. Bin auf die Antwort gespannt
Bin zwar nicht der Fragesteller, aber wie ließt man denn dann die Binäre Komma Zahl (im Beispiel die 1 hinter 1100). Ich meine welche Formel/Regel sagt mir, dass das 0,5 ist?
Zum Einen muss hier noch was umgestellt werden, da die von mir dargestellte duale Zahl nicht in der 16-bit-Darstellung ist.
Hierzu kann man unter http://de.wikipedia.org/wiki/Gleitkommazahl#Gleitkommazahleninder_Digitaltechnik
schön nachlesen, dass noch normalisiert werden muss.
Zum Anderen und auch um auf Deine Frage einzugehen, stehen die Einerstellen im Dualsystem für 2 hoch 0, die Zehnerstellen für 2 hoch 1, etc.
So dass 1100 =
1 mal 2 hoch 3 (=8) +
1 mal 2 hoch 2 (=4) +
0 mal 2 hoch 1 (=0) +
0 mal 2 hoch 0 (=0)
16 ergibt.
Weiter geht es dann hinter dem Komma mit
1 mal 2 hoch (-1) = 1/2 = 0,5
etc. einfach analog zum Zehnersystem!
ahhhh, wieder was gelernt. danke :)
Jetzt hab ich es:
Für 16-bit nehmen wir
Vorzeichen 1 bit
Mantisse 10 bit
Exponent 5 bit
Exzess berechnen: 2 hoch (5-1) = 15
Duale Festkommazahl ohne Vorzeichen: s.o. = 1100,1
Normieren:
1100,1 mal 2 hoch 0 = 1,1001 mal 2 hoch 3
3 + 15 = 18
18 durch 2 = 9 Rest 0
9 durch 2 = 4 Rest 1
4 durch 2 = 2 Rest 0
2 durch 2 = 1 Rest 0
1 durch 2 = 0 Rest 1
ergibt: 10010
Vorzeichenbit (da positiv) = 0
Das Ergebnis:
0 10010 1001000000
Wie gesagt, analog zum Link:
http://de.wikipedia.org/wiki/Gleitkommazahl#Gleitkommazahleninder_Digitaltechnik
bis auf die Tatsache dass dort mit einer 24-bit-Darstellung gerechnet wird!
Ist es nicht so?
die ersten 8 bits gehören zur 12, und die anderen 8 zur 0,5.
d.h. 12 = 1100 -> 0000 1100
und für die anderen 8 bits gilt dann:
0,5 * 2 = 1,0 0 * 2 = 0 0 * 2 = 0 0 * 2 = 0 0 * 2 = 0 0 * 2 = 0 0 * 2 = 0 0 * 2 = 0
-> 10000000
und zusammen ergibt das dann 0000110010000000.
ich hoffe doch mal das es so stimmt!
Das was Du meinst, könnte nach der Festkommadarstellung gemeint und damit richtig sein!
Kommt auf die Vorgabe an, wo da das Komma positioniert ist (wenn Du sagst zwischen 8. und 9. bit, dann ok)!
Zur Sicherheit aber prüfen, dass das Vorzeichenbit (1. bit) auch passt!
Kann auch sein, dass Ihr nicht mit Vorzeichenbit arbeitet...