En motsvarande för Divide med 3

S

sheikh

Guest
Hej Dears Som ni vet att vi kan använda Shift enhet för dela med 2 (eller multiplicera med 0,5). Nu kan du berätta för mig finns det något sätt att beräkna Divide av (3) eller (5) utan att använda en avdelare? (Jag menar enheten ersättning divider av en annan enhet, Shift t ex!) Hälsningar Mostafa
 
Ja du kan byta till dividera med 3, men ditt nummer måste vara trinary, inte binärt. En liknande typ av sak gäller för uppdelning av 5. Om du tänker på det, när du dela med 10 i decimal, är du flytta mentalt siffrorna också. De flesta datorer är dock binära ..
 
Du kan också använda en multiplikator för division, men du måste ange önskad precision. 1/3 skulle vara 0,0101010101010101 .... Den har ingen ändlig längd värde i bas 2, precis som det inte har något ändlig längd värde i basen 10 (0,3333 ...) att dela med 3, kan du multiplicera med "00.101.011" och sedan flytta resultatet med 7 platser. t.ex.: "1111" * "00.101.011" = 5. avrundning är lite udda - Om "00101010" används i stället, då ovan skulle vara 4. i änden, längden "1/3" bör baseras på precisionen. till exempel om 3000 används med ovanstående metod, skulle resultatet bli 1007. om du bara bryr sig om resultatet till inom + -8, skulle det vara ok. Tänk också på att det inte finns någon anledning att hålla precision till ett heltal plats kan du hålla extra fractional bitar. större delare kommer att kräva större multiplikander för samma nivå av precision. 1/3 är långt från 1/4 eller 1/2, men 1/3000 är nära 1/3001.
 

Welcome to EDABoard.com

Sponsor

Back
Top