Entwickler-Ecke
Sonstiges (Delphi) - constantes array of byte
Boldar - Sa 13.12.08 16:58
Titel: constantes array of byte
Hallo,
Ich habe diese Deklaration:
Delphi-Quelltext
1:
| const bytearr : array [1..8] of byte = [$00000001, $00000010, $00000100, $00001000, $00010000, $00100000, $01000000, $10000000]; |
Aber da meckert der Compiler:"[Pascal Fehler] xxxxx.pas(39): E1012 Konstantenausdruck verletzt untere Grenzen"
Früher ging sowas immer...
Was mache ich falsch?
Gruß Boldar
JayEff - Sa 13.12.08 17:03
Titel: Re: constantes array of byte
Delphi-Quelltext
1:
| const bytearr : array [1..8] of byte = ($00000001, $00000010, $00000100, $00001000, $00010000, $00100000, $01000000, $10000000); |
;)
ausserdem ist $10000000 = 268435456 und nicht etwa 128. Nimm die zahlen in dezimaldarstellung: 10000000 = 128, 01000000=64 etc.
jaenicke - Sa 13.12.08 17:03
Du gibst hexadezimale Zahlen an, die weit über die Grenzen von 0..255 für Byte hinausgehen...
der organist - Sa 13.12.08 17:52
da kommt bei mir die Frage auf: Welche Zahlen kann man alles verwenden?
-Dezimal (kein Präfix)
-Hexadezimal ($)
-Binär (%[?])
-...?
Delete - Sa 13.12.08 17:54
Es gibt weder binäre, dezimale noch hexadezimale Zahlen, es gibt nur eine unterschiedliche Darstellung von Zahlen. Ob man nun 255, $FF oder 11111111 schreibt, die dahinterliegende Zahl bleibt gleich.
JayEff - Sa 13.12.08 18:01
DeddyH hat folgendes geschrieben : |
Es gibt weder binäre, dezimale noch hexadezimale Zahlen, es gibt nur eine unterschiedliche Darstellung von Zahlen. |
Ich glaube das ist dem organist in diesem fall klar ;)
DeddyH hat folgendes geschrieben : |
Ob man nun 255, $FF oder 11111111 schreibt, die dahinterliegende Zahl bleibt gleich. |
255=$FF
<>11111111 und das ist genau der Punkt in seiner Frage. Gibt es ein Präfix für binär oder andere Zahlendarstellungen.
Delete - Sa 13.12.08 18:02
Achso, dann hab ich das falsch verstanden, sry.
der organist - Sa 13.12.08 19:07
Np, Aber nu...was ist das Präfix für binäre zahlen? Oder hab ich es nich gesehen?
MfG,
jaenicke - Sa 13.12.08 19:13
Also ich kenne keins bei Delphi. Keine Ahnung, ob es das gibt. :nixweiss:
(Es hat mich auch wenig interessiert, weil man das ja durch Zusammenfassung leicht im Kopf in Hexadezimaldarstellung umrechnen kann.)
BenBE - Sa 13.12.08 20:48
Es gibt auch keinen Prefix für binär in Delphi. Und selbst in C ist das nicht standardisiert (je nach Compiler unterschiedlich).
der organist - Sa 13.12.08 21:27
und wie übergebe ich dann eine Binärzahl? Das kann der Compiler doch nicht unterscheiden.
jaenicke - Sa 13.12.08 21:39
Du schreibst die Zahl nicht in Binärschreibweise sondern in Dezimal- oder Hexadezimalschreibweise, wo ist das Problem?
Gerade die Hexadezimalschreibweise ist in diesem Fall natürlich sehr gut geeignet, weil sie einerseits sehr kompakt und andererseits sehr sehr einfach aus der Binärschreibweise berechenbar ist.
JayEff - Sa 13.12.08 22:27
jaenicke hat folgendes geschrieben : |
sie [...] sehr sehr einfach aus der Binärschreibweise berechenbar ist. |
Und für die, die den Trick nicht kennen:
Quelltext
1: 2: 3:
| Man Teile die Binärzahl in 4er Blöcke: 0011 1010 0101 Jeder davon ergibt eine hex-ziffer: 3 10=A 5 Und man hat von bin in hex gerechnet: 1110100101 = $3A5 |
Umgekehrt natürlich genauso.
XUDO - Fr 26.12.08 12:48
Titel: Re: constantes array of byte
Boldar hat folgendes geschrieben : |
Was mache ich falsch? |
Hallo Boldar,
in der Anlage ein Progrämmchen, das Dir alles nebeneinander zeigt,
von 0 bis 255 und dazu der Quelltext.
Er enthält Dein vorgesehenes Array und zusätzlich die Werte 9 bis 255.
Viel Erfolg
XUDO
XUDO - Fr 26.12.08 15:22
Hallo Bolder,
Noch etwas zum Verständnis der Functions in den Anlagen.
XUDO
Boldar - Sa 27.12.08 12:19
Joa danke dir..
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!