Einzelnen Beitrag anzeigen
  #7 (permalink)  
Alt 14-11-2008, 22:58
asp2php
 Banned
Links : Onlinestatus : asp2php ist offline
Registriert seit: Feb 2004
Beiträge: 11.745
asp2php ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Also intern werden die Zahlen in 8Bit-Block interpretiert, d.h. die Zahl 10 passt noch in 8-Bit-Raster und deshalb auch mit 00001010 dargestellt. Du hast verkürzt geschrieben (4bits verschluckt ), deshalb sieht es für dich nicht klar. Sobald die Zahl das Raster gesprengt hat, wird 8-Bit zur Dartellung hinzu genommen, bis das Betriebsystem nein sagt (z.B. bei 32-Bit OS ist 32 Bit die Grenze), dann kommt zum overflow und die Zahl wird negiert dargestellt. Bei PHP ist das so, weil die Variablentyp nicht fest vor definiert ist. In anderen Hochsprachen musst du von vorne herein sagen wasfür Typ sie ist, und somit auch den Wertebereich festgelegt hast.

z.B. du definierst a ist vom Typ Byte, also 8-bit und bei einer Berechnung kommt als Ergebnis 128 raus, dann bekommst du einen overflow als runtime error.

Geändert von asp2php (14-11-2008 um 23:04 Uhr)
Mit Zitat antworten