Citat:
Ursprungligen postat av
sovasang
De är närbesläktade med division och multiplikation enligt nedan.
X//0=X (Delar X noll gånger)
X//1=X/2 (Delar X en gång)
Vänder vi på steken har vi:
X**0=X och
X**1=2X
Min fråga är vad detta har någon praktisk användning.
Om jag förstått det hela rätt så med "dela" menar du "dela i två lika delar" eller varför inte "dividera med två". Du delar ett äpple en gång, så har du två halva äpplen. Delar du det en gång till så har du fyra fjärdedels äpple, och så vidare.
I så fall är dina räknesätt ett annat sätt att skriva division eller multiplikation med potenser av två.
(^ betyder "upphöjt till")
Alltså: X//n = X/2^n
X//0=X / 2⁰ = X / 1 = X
X//1= X / 2¹ =X/2 (Delar X en gång)
X**n = X * 2^n
X**0=X * 2⁰ = X * 1 = X
X**1= X*2¹ = X * 2 = 2X
"Räknesätten" finns redan och har en praktisk användning inom programmeringen. De heter nåt i stil med "left shift" och "right shift". Man flyttar alltså alla bitarna i ett tal ett visst antal steg åt höger eller vänster.
Det ser exempelvis ut som detta:
x = y << 4
z = y >> 2
(Notationen du hittat på är redan upptagen, i alla fall inom programmeringen. // brukar betyda heltalsdivision och ** brukar betyda upphöjt till.)