Hallo Kolisson,

nimm mal :
P=7 decimal (00000111 binair)
Shift, p, right 2 ergibt dan binair 00000001, also 1 decimal.
Normalerweise sollte es aber nach 2 gerundet werden, denn
7/4 = 1.75, nach rundung gibt dass 2

Die shift function, und auch die Integer teilung runden immer nach unten weil sie einfach die letzt bits weglassen. Das kann mann loesen indem man die halfte des Teilers (hier also 4/2=2 erst zu dem zu teilen wert zahlt:

Gleichen Vorbild:
p=7 dec (00000111 bin)
p=p+2 :ergibt 9 dec (00001001 bin)
shift, P, right, 2 ergint binair 00000010, also 2 dec.
Damit stimmt die rundung. Versuch es selber mal mit 6 dec und 5 dec, dan siehst du wie es functioniert.

Das geht auch mit integer in two's complemet notation wie Bascom sie verwendet.

Ist dies verstaendlich?
Gruesse,

Merijn