EBNF kennt sich da jemand aus??
-
A10H ist kein Wort der Sprache, weil jeder integer mit einem digit anfangen muss, A aber ein hexdigit ist.
4567E+8 ebenfalls nicht. In
<real> ::= <digit> {<digit>} ’.’ {<digit>} [<ScaleFactor>]
kommt immer ein '.' vor der, in dem Wort ist aber keiner.
-
Und nochwas ...
dddd schrieb:
10AH würde ich sagen, es passt zu integer einordnen würde ich es so
<digit> {<digit>} | <digit> {<hexDigit>} ’H’ 1 0 A H
aber andererseite macht mich das auch irgendwie stuzig, da integer werte eigendlich ganzzahlige werte sind aber keine buchstaben..
Die hast bei deiner Ableitung das | ignoriert. So geht das nicht.
Und dann die "Buchstaben" in dem Integer ... himmelnochmal schonmal was von Hexadezimalsystem gehört?
-
Komische Definition von Hexadezimaldarstellung. Sollte es nicht eher
<integer> ::= <digit> {<digit>} | <hexDigit> {<hexDigit>} ’H’
heißen?!
-
Th69 schrieb:
Komische Definition von Hexadezimaldarstellung. Sollte es nicht eher
<integer> ::= <digit> {<digit>} | <hexDigit> {<hexDigit>} ’H’
heißen?!
Nein, das ist schon richtig so. Sonst kann man hexadezimale Zahlen nicht von Identifiern unterscheiden (wenn man davon ausgeht, dass das nur ein Ausschnitt aus einer realen Grammatik ist.)
-
Achso, dann ist also A0 oder FF keine Hexadezimalzahl mehr...
-
Du meinst wohl A0H oder FFH. Ja, wenn du mal Assembler (Intel-Syntax) programmierst, wird dir das wieder begegnen.
-
Bashar schrieb:
Du meinst wohl A0H oder FFH. Ja, wenn du mal Assembler (Intel-Syntax) programmierst, wird dir das wieder begegnen.
Aha und wie kodiere ich dann bspws. 255 (ff) als hexadezimalzahl mit deinem assembler?
-
@trottelmaschine
Je nach Assembler als 0xFF, $FF oder FFH.
Seiner verwendet anscheinend FFH.
-
hustbaer schrieb:
Seiner verwendet anscheinend FFH.
Eben. Und FFH waere nach dieser Grammatik eben _keine_ gueltige Zahl. Mehr hat Th69 nicht festgestellt.
-
Ahhhh I see.
Ist aber auch kein Problem. Schreibste halt 0FFH.
ps: retour.