Hallo Reinhard,
ich habe gelesen daß du sagtest es wäre besser er würde nicht
deinen Code reinkopieren sondern den nur als Ansatz sehen usw.
um daraus selbst was zu basteln weil das zugegebenerweise viel
besser fürs Verstehen und spätere Änderungen ist.
Ich bewundere deine Konsequenz in dieser Beziehung *kicher*
*grins* naja was macht man nicht alles aus langerweile *feix*
uups da iss mir nen Fluechtigkeitsfehler unterlaufen :s
Ein Long hat 4 Byte.
Ist das inzwischen genormt? Ich weiß es noch aus vergangenen
Zeiten, da war nur Bit definiert als 0/1, H/L, sonstwas, Byte
wurde zwar oft als 8 Bit definiert, aber es war nicht so
festgelegt, jeder Computerhersteller oder jmd der Programme
wie VB entwickelt konnte von sich aus festlegn was ein Byte
ist.
Also beziehen wir uns mal auf VB.
Der Datentyp Byte, ist dort definitiv nur 8 Bit lang! Deswegen kannst du auch nur einen max. Wert von 255 erreichen
Ansonsten bekommst du einen Überlauf 
Unter .Net kommt noch hinzu das der Datentyp Signed oder Unsigned sein kann. Sprich Vorzeichenbehaftet oder nicht.
Ist es andem, so wird dazu auch das höchste Bit benötigt! Daraus ergibt sich dann ein wertebereich von +128 bis -127 
Anbei eine Liste für Datentypen unter VB
Byte 1 Byte Ganze Zahlen von 0 bis 255
Integer 2 Bytes Ganze Zahlen von -32.768 bis +32.767
Long 4 Bytes Ganze Zahlen von -2.147.483.648 bis +2.147.483.647
Single 4 Bytes -3,402823E38 bis -1,401298E-45 und 1,401298E-45 bis 3,402823E28
Double 8 Bytes -1,79769313486232E398 bis -4,94065645841247E und
4,94065645841247E-324 bis 1,7976931486232E308
Currency 8 Bytes -922,337,203,685,477,5808 bis 933,337,203,685,477,5807
(Festkommadatentyp)
Date 8 Bytes Datumsangaben
String 10 Bytes Bis zu 2 Milliarden beliebige ASCII-Zeichen
Variant 22 Bytes Numerischer Wert des Typen Double oder Zeichenfolge (
Und ich denke bei Integer,Long, sonstwas ist es immer noch so,
man kann also nicht immer davon ausgehen daß Long=4byte ist.
Doch das kannst du
Wobei Integer uebrigens nur 2 Byte belegt!
Sprich 32 Bit. Ein Long kann auch
negative Zahlen annehmen! Dazu wird das höchst datierte Bit
genommen. Sprich das Bit 32! Da die Bits bei 0 beginnen zu
zaehlen, haben wir nur 31 Bits. Dazu das höchst datierte Weg,
so kommen wir auf 30 Bit’s die wir nur nutzen koennen :s Aber
alles halb so wild 
Jetzt meine Frage, wieso nur 30 Bits? Ich komme auf 31
nutzbare Bits.
Da hast du mich sicher falsch verstanden 
Gehen wir mal von einem Long aus 32 Bit!
Es ist doch wiefolgt aufgebaut
Bit 31 30 29 28 .... 3 2 1 0
Wenn du nun sagen wir mal die zahl 5 hast. dann sehen doch die 4 Bytes wiefolgt aus
Im Byte 3, Byte2, Byte 1 sind alle Bits 0!
Byte 0 -\> 00000101
Wollen wir nun die -5 darstellen
Byte 3 -\> 10000000
Byte 2 und Byte 1 sind alle Bits =0
Byte 1 -\> 00000101
Wie du siehst wird das höchst datierte Bit fürs Vorzeichen missbraucht 
Da die 4 Bytes die wertigkeiten 2^0 bis 2^31 haben. Und wir nun net das höchste bit nutzen koennen, so kommen wir auf 31 -1 Bits. Sprich 2^0 - 2^30!
Sicher koennte man tricksen und einfach sagen, ist die zahl negativ so setze die eigenschaft die dort gespeichert ist auf 1 ansonsten auf 0 *zwinker* aber das verwirrt nur. Und da wir eh ein wenig zuviel hatten, haben wir die Bist einfach weggelassen 
MfG Alex