Någon som kan förklara den där koden för mig?
Jag tänkte gjort på ett mycket krångligare sätt.
Jag vill inte att ni ska lösa uppgiften åt mig bara förklara vad den där koden gör, eller rättare sagt rad 2.
>> flyttar bitarna i variabeln n i steg till höger.
& betyder logiskt och.
Vi tar ett exempel: Om du har talet 42 så lagras ju det som 00101010.
Då är n = 42 och i = 7. Första gången i loopen så flyttas bitarna i 42 7 steg till höger. Vi får då 00000000. I praktiken innebär det att biten längst till vänster hamnar längst till höger. Sedan görs en och med 1 och det innebär att de sju bitarna längst till vänster kommer att bli noll och det är bara den sista siffran som räknas. Det returneras 1 om den är 1 eller 0 om den är 0. Den siffran som returneras skrivs ut.
Andra varvet i loopen flyttas bitarna 6 steg vilket också blir 000000 och "och" med 1 ger 0. På skärmen har det nu skrivits ut 00.
Tredje varvet kommer att flytta bitarna 5 steg och det ger 00000001. När det nu blir och med 1 så kommer det att returneras 1. På skärmen har vi 001.
Fjärde ger 00000010 och "och" med 1 ger 0. Utskriften är nu 0010.
Femte ger en tre stegs förflyttning av bitarna vilket ger 00000101 och "och" med 1 ger 0. På skärmen syns nu 00101.
Osv...
Vad man gör är alltså att man hela tiden läser av sista siffran samtidigt som man förskjuter talet så att alla siffror hamnar på sista positionen i tur och ordning.
">>" förskjuter talet och "& 1" läser av sista siffran.
Jag tror jag förstår lite iaf ;)
Jag förstår bara inte riktigt varför man gör så där, när man har talet i binär form då redan....
För om man flyttar binär talet 7 steg åt sidan så har man ju redan det.
Finns det någon bra funktion för att skriva ut det direkt?