Fließkommazahlen: C-Standard
-
Hi!
Ich muss einen Endlichen Automaten basteln, der alle Fließkommazahlen nach C-Standard akzeptieren soll. Kann mir jemand sagen, wie dieser Standard aussieht? Wie müssen Fließkommazahlen in C gebaut sein?
-
Was meinst genau mit "wie müssen Fließkommazahlen" gebaut sein?
Weißt nicht wie du sie definieren, einlesen, ausgeben sollst?
-
|silver| schrieb:
Was meinst genau mit "wie müssen Fließkommazahlen" gebaut sein?
Weißt nicht wie du sie definieren, einlesen, ausgeben sollst?
Na ich muss eben einen endlichen Automaten bauen und muss wissen, welche Wörter dieser akzeptieren soll. Da ich mich weder mit C noch mit Fließkommazahlen gut auskenne, weiß ich eben nicht genau, wie das auszusehen hat. Ich tippe mal drauf, dass diese Fließkommazahlen irgendwie die Form -100.000e01 oder sowas haben.
-
also die string repräsentation von fließkommazahlen?
1. ein vorzeichen kann kommen, muss aber nicht
2. jetz können ziffern kommen, müssen aber nicht
3. dezimalpunkt
4. jetz können ziffern kommen, müssen wenn bei 2 keine waren
5. jetz kann ein "e" kommen für den exponenten
6. wenn (5) dann muss jetzt ein vorzeichenbehafteter integer kommen, sonst nichtverpack das mal in einen regulären ausdruck.
regex coach/hilfe für windows: http://weitz.de/regex-coach/
-
c.rackwitz schrieb:
3. dezimalpunkt
ist auch nur nötig, wenn keine Zahl vorm komma und kein e.
bsp: 3e0 ist auch eine gültige FKZ.auf bald
oenone
-
stimmt..
in dem zusammenhang möchte ich auf BNF hinweisenemmchen hat mich mal im icq angesprochen.
sie hat auf mich den eindruck gemacht, dass sie in ihrem informatikustudium im 7ten semester (steht auf ihrer homepage) ziemlich verloren ist. formale sprachen hat sie nicht erwähnt, reguläre ausdrücke noch nie gehört, wenn ich mit "bytestrom" ankomme, stellt sie auf durchzug und dann kommen noch so zeilen:[23:33:08] ***: sorry ich studere an der uni - ich habe null ahnung von der praxis [23:38:24] ***: ICH NIX PROGRAMMIEREN [23:39:37] ***: *lol* geh mal zur uni, dann lernste mal was richtige informatik bedeutet
ich fands lustig
-
constant:
integer-constant
floating-constant
enumeration-constant
character-constantinteger-constant:
decimal-constant integer-suffixopt
octal-constant integer-suffixopt
hexadecimal-constant integer-suffixoptdecimal-constant:
nonzero-digit
decimal-constant digitoctal-constant:
0
octal-constant octal-digithexadecimal-constant:
hexadecimal-prefix hexadecimal-digit
hexadecimal-constant hexadecimal-digithexadecimal-prefix: one of
0x 0Xnonzero-digit: one of
1 2 3 4 5 6 7 8 9octal-digit: one of
0 1 2 3 4 5 6 7hexadecimal-digit: one of
0 1 2 3 4 5 6 7 8 9
a b c d e f
A B C D E Finteger-suffix:
unsigned-suffix long-suffixopt
unsigned-suffix long-long-suffix
long-suffix unsigned-suffixopt
long-long-suffix unsigned-suffixoptunsigned-suffix: one of
u Ulong-suffix: one of
l Llong-long-suffix: one of
ll LLfloating-constant:
decimal-floating-constant
hexadecimal-floating-constantdecimal-floating-constant:
fractional-constant exponent-partopt floating-suffixopt
digit-sequence exponent-part floating-suffixopthexadecimal-floating-constant:
hexadecimal-prefix hexadecimal-fractional-constant
binary-exponent-part floating-suffixopt
hexadecimal-prefix hexadecimal-digit-sequence
binary-exponent-part floating-suffixoptfractional-constant:
digit-sequenceopt . digit-sequence
digit-sequence .exponent-part:
e signopt digit-sequence
E signopt digit-sequencesign: one of
+ -digit-sequence:
digit
digit-sequence digithexadecimal-fractional-constant:
hexadecimal-digit-sequenceopt .
hexadecimal-digit-sequence
hexadecimal-digit-sequence .binary-exponent-part:
p signopt digit-sequence
P signopt digit-sequencehexadecimal-digit-sequence:
hexadecimal-digit
hexadecimal-digit-sequence hexadecimal-digitfloating-suffix: one of
f l F Lwenn dir noch irgendein Nichtterminal fehlt - lass es mich wissen