8 Π±ΠΈΡ‚Ρ‚Π΅Π½ Ρ‚Ρ€Π°Ρ‚Ρ‹Π½ ΠΊΠΎΠ΄

Π‘ΠΈΡ‚ | Π‘Π°ΠΉΡ‚ | БистСмы счислСния

8 Π±ΠΈΡ‚Ρ‚Π΅Π½ Ρ‚Ρ€Π°Ρ‚Ρ‹Π½ ΠΊΠΎΠ΄. Programmirovanie mikrokontrllerov Kursy. 8 Π±ΠΈΡ‚Ρ‚Π΅Π½ Ρ‚Ρ€Π°Ρ‚Ρ‹Π½ ΠΊΠΎΠ΄ Ρ„ΠΎΡ‚ΠΎ. 8 Π±ΠΈΡ‚Ρ‚Π΅Π½ Ρ‚Ρ€Π°Ρ‚Ρ‹Π½ ΠΊΠΎΠ΄-Programmirovanie mikrokontrllerov Kursy. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° 8 Π±ΠΈΡ‚Ρ‚Π΅Π½ Ρ‚Ρ€Π°Ρ‚Ρ‹Π½ ΠΊΠΎΠ΄. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° Programmirovanie mikrokontrllerov Kursy. Для ΠΏΠΎΠ»Π½ΠΎΡ‚Ρ‹ понимания Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Ρ‡Π΅Ρ‚ΠΊΠΎ Π·Π½Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π±ΠΈΡ‚ ΠΈ Π±Π°ΠΉΡ‚, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΡƒΠΌΠ΅Ρ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ систСмы счислСния.

Для ΠΏΠΎΠ»Π½ΠΎΡ‚Ρ‹ понимания Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Ρ‡Π΅Ρ‚ΠΊΠΎ Π·Π½Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π±ΠΈΡ‚ ΠΈ Π±Π°ΠΉΡ‚, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΡƒΠΌΠ΅Ρ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ систСмы счислСния.

ΠžΡΠ½ΠΎΠ²Π½Ρ‹ΠΌ Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ ядром любого ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° являСтся микропроцСссор. ИмСнно ΠΎΠ½ выполняСт ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ ΠΊΠΎΠΌΠ°Π½Π΄ ΠΈΠ»ΠΈ ΠΆΠ΅ ΠΊΠΎΠ΄Π°, написанного программистом.

Π£ΠΏΡ€ΠΎΡ‰Π΅Π½Π½ΠΎ Ρ€Π°Π±ΠΎΡ‚Ρƒ микропроцСссора ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ. Π‘Π½Π°Ρ‡Π°Π»Π° выполняСтся считываниС Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ· ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ячСйки памяти, Π΄Π°Π»Π΅Π΅ выполняСтся ΠΈΡ… ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΈ Π·Π°Ρ‚Π΅ΠΌ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π° Π½Π°Π·Π°Π΄ Π² ячСйку памяти. Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ микропроцСссор ΠΌΠΎΠ³ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ свои Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ памяти. Π˜Π½Π°Ρ‡Π΅ Π΅ΠΌΡƒ Π½Π΅ΠΎΡ‚ΠΊΡƒΠ΄Π° Π±ΡƒΠ΄Π΅Ρ‚ ΡΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅, Π° Π·Π°Ρ‚Π΅ΠΌ Π½Π΅ΠΊΡƒΠ΄Π° ΠΏΠΎΠΌΠ΅Ρ‰Π°Ρ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ вычислСний.

8 Π±ΠΈΡ‚Ρ‚Π΅Π½ Ρ‚Ρ€Π°Ρ‚Ρ‹Π½ ΠΊΠΎΠ΄. Ris1 2. 8 Π±ΠΈΡ‚Ρ‚Π΅Π½ Ρ‚Ρ€Π°Ρ‚Ρ‹Π½ ΠΊΠΎΠ΄ Ρ„ΠΎΡ‚ΠΎ. 8 Π±ΠΈΡ‚Ρ‚Π΅Π½ Ρ‚Ρ€Π°Ρ‚Ρ‹Π½ ΠΊΠΎΠ΄-Ris1 2. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° 8 Π±ΠΈΡ‚Ρ‚Π΅Π½ Ρ‚Ρ€Π°Ρ‚Ρ‹Π½ ΠΊΠΎΠ΄. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° Ris1 2. Для ΠΏΠΎΠ»Π½ΠΎΡ‚Ρ‹ понимания Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Ρ‡Π΅Ρ‚ΠΊΠΎ Π·Π½Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π±ΠΈΡ‚ ΠΈ Π±Π°ΠΉΡ‚, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΡƒΠΌΠ΅Ρ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ систСмы счислСния.

Π”Π°Π²Π°ΠΉΡ‚Π΅ ΠΊΡ€Π°Ρ‚ΠΊΠΎ рассмотрим Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ Ρ€Π°Π±ΠΎΡ‚Ρ‹ микропроцСссора (МП) Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ слоТСния Π΄Π²ΡƒΡ… Ρ†ΠΈΡ„Ρ€.

Π’ΠΎΡ‚ Ρ‚Π°ΠΊΠΎΠΉ ΠΌΠΎΠ½ΠΎΡ‚ΠΎΠ½Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚ΠΎΠΉ Π·Π°Π½ΠΈΠΌΠ°ΡŽΡ‚ΡΡ микропроцСссоры. Для выполнСния ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π΅ΠΌΡƒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ. Однако соврСмСнныС МП Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ Π±ΠΎΠ»Π΅Π΅ 1 000 000 000 ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Π·Π° ΠΎΠ΄Π½Ρƒ сСкунду. ΠœΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Ρ‹ ΠΆΠ΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ Π±ΠΎΠ»Π΅Π΅ 1 000 000 ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ, Ρ‡Π΅Π³ΠΎ, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, прСдостаточно для Ρ‚Π°ΠΊΠΎΠ³ΠΎ ΠΊΡ€ΠΎΡ…ΠΎΡ‚Π½ΠΎΠ³ΠΎ устройства.

Π”Π°Π½Π½Ρ‹Π΅, с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ ΠΎΠΏΠ΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ микропроцСссор, ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ собой Π½Π°Π±ΠΎΡ€ Ρ†ΠΈΡ„Ρ€. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ нашСй Ρ†Π΅Π»ΡŒΡŽ являСтся Ρ€Π°ΡΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ, ΠΊΠ°ΠΊΠΈΠ΅ Ρ†ΠΈΡ„Ρ€Ρ‹, Π° Ρ‚ΠΎΡ‡Π½Π΅Π΅ систСмы счислСния β€œΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ‚β€ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€.

ДСсятичная систСма счислСния

ДСсятичная систСма счислСния Π½Π°ΠΌ ΠΎΡ‡Π΅Π½ΡŒ Π±Π»ΠΈΠ·ΠΊΠ° ΠΈ понятна. Π’ΠΎΠ·Π½ΠΈΠΊΠ»Π° ΠΎΠ½Π° ΠΎΡ‡Π΅Π½ΡŒ Π΄Π°Π²Π½ΠΎ, ΠΊΠΎΠ³Π΄Π° Ρƒ людСй Π²ΠΏΠ΅Ρ€Π²Ρ‹Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π» Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ подсчСта Ρ‡Π΅Π³ΠΎ-Π»ΠΈΠ±ΠΎ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ количСства Π΄Π½Π΅ΠΉ ΠΈΠ»ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹Ρ… событий. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π² Ρ‚Π΅ Π΄Π°Π²Π½ΠΈΠ΅ Π²Ρ€Π΅ΠΌΠ΅Π½Π° Π½Π΅ Π±Ρ‹Π»ΠΎ ΠΊΠ°ΠΊΠΈΡ…-Π»ΠΈΠ±ΠΎ тСхничСских устройств, Ρ‚ΠΎ люди использовали для счСта ΠΏΠ°Π»ΡŒΡ†Ρ‹ Ρ€ΡƒΠΊ. Загибая ΠΈΠ»ΠΈ разгибая ΠΏΠ°Π»ΡŒΡ†Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π΄Π΅ΡΡΡ‚ΡŒ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠΉ, Ρ‡Ρ‚ΠΎ ΠΎΡ‡Π΅Π½ΡŒ просто ΠΈ наглядно.

8 Π±ΠΈΡ‚Ρ‚Π΅Π½ Ρ‚Ρ€Π°Ρ‚Ρ‹Π½ ΠΊΠΎΠ΄. Ris2 2. 8 Π±ΠΈΡ‚Ρ‚Π΅Π½ Ρ‚Ρ€Π°Ρ‚Ρ‹Π½ ΠΊΠΎΠ΄ Ρ„ΠΎΡ‚ΠΎ. 8 Π±ΠΈΡ‚Ρ‚Π΅Π½ Ρ‚Ρ€Π°Ρ‚Ρ‹Π½ ΠΊΠΎΠ΄-Ris2 2. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° 8 Π±ΠΈΡ‚Ρ‚Π΅Π½ Ρ‚Ρ€Π°Ρ‚Ρ‹Π½ ΠΊΠΎΠ΄. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° Ris2 2. Для ΠΏΠΎΠ»Π½ΠΎΡ‚Ρ‹ понимания Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Ρ‡Π΅Ρ‚ΠΊΠΎ Π·Π½Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π±ΠΈΡ‚ ΠΈ Π±Π°ΠΉΡ‚, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΡƒΠΌΠ΅Ρ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ систСмы счислСния.

ΠœΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΡ‡Π΅ΡΠΊΠΈ данная ΠΎΠ½Π° состоит ΠΈΠ· дСсяти Ρ€Π°Π·Π½Ρ‹Ρ… символов 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, поэтому ΠΎΠ½Π° ΠΈ называСтся дСсятичной. Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Ρ… символов Π»Π΅Π³ΠΊΠΎ ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ΡŒ любоС число.

ОснованиСм дСсятичной систСмы являСтся 10. Когда ΠΏΡ€ΠΈ счСтС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Ρ‹ всС Π·Π½Π°ΠΊΠΈ ΠΎΡ‚ 0 Π΄ΠΎ 9, Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ дальнСйший счСт, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ вмСсто символа 9 ΠΏΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ символ 0, Ρ‚. Π΅. ΠΎΠ±Π½ΡƒΠ»ΠΈΡ‚ΡŒ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Π° слСва ΠΎΡ‚ нуля Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ символ 1. И Ρ‚Π°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Ρ‚ΡŒ счСт Π΄ΠΎ бСсконСчности, прибавляя слСва ΠΎΡ‚ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ Ρ†ΠΈΡ„Ρ€Ρ‹ ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ.

КаТдая позиция Ρ†ΠΈΡ„Ρ€Ρ‹ ΠΈΠΌΠ΅Π΅Ρ‚ свой вСс. НаимСньший вСс ΠΈΠΌΠ΅Π΅Ρ‚ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ, находящаяся Π² ΠΊΡ€Π°ΠΉΠ½Π΅ΠΌ ΠΏΡ€Π°Π²ΠΎΠΌ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ. По ΠΌΠ΅Ρ€Π΅ пСрСмСщСния слСва Π½Π° ΠΏΡ€Π°Π²ΠΎ, вСс ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ возрастаСт.

8 Π±ΠΈΡ‚Ρ‚Π΅Π½ Ρ‚Ρ€Π°Ρ‚Ρ‹Π½ ΠΊΠΎΠ΄. Ris3 2. 8 Π±ΠΈΡ‚Ρ‚Π΅Π½ Ρ‚Ρ€Π°Ρ‚Ρ‹Π½ ΠΊΠΎΠ΄ Ρ„ΠΎΡ‚ΠΎ. 8 Π±ΠΈΡ‚Ρ‚Π΅Π½ Ρ‚Ρ€Π°Ρ‚Ρ‹Π½ ΠΊΠΎΠ΄-Ris3 2. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° 8 Π±ΠΈΡ‚Ρ‚Π΅Π½ Ρ‚Ρ€Π°Ρ‚Ρ‹Π½ ΠΊΠΎΠ΄. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° Ris3 2. Для ΠΏΠΎΠ»Π½ΠΎΡ‚Ρ‹ понимания Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Ρ‡Π΅Ρ‚ΠΊΠΎ Π·Π½Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π±ΠΈΡ‚ ΠΈ Π±Π°ΠΉΡ‚, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΡƒΠΌΠ΅Ρ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ систСмы счислСния.

НапримСр, число 2345 ΠΈΠΌΠ΅Π΅Ρ‚ 4 ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ. Π’ ΠΊΡ€Π°ΠΉΠ½Π΅ΠΉ Π»Π΅Π²ΠΎΠΉ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°ΡŽΡ‚ΡΡ Π΅Π΄ΠΈΠ½ΠΈΡ†Ρ‹, Π² Π΄Π°Π½Π½ΠΎΠΌ случаС 5 Π΅Π΄ΠΈΠ½ΠΈΡ†, Π° ΡΡ‚Π΅ΠΏΠ΅Π½ΡŒ 10 ΠΈΠΌΠ΅Π΅Ρ‚ Π½ΡƒΠ»Π΅Π²ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. Π”Π°Π»Π΅Π΅ вСс ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ увСличиваСтся. Π‘Π»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, располоТСнноС слСва ΠΎΡ‚ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π³ΠΎ, ΡƒΠΆΠ΅ содСрТит дСсятки, Π° 10 ΠΈΠΌΠ΅Π΅Ρ‚ ΡΡ‚Π΅ΠΏΠ΅Π½ΡŒ 1, поэтому Π²ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΉ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ числа 2345 Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ дСсятка.

8 Π±ΠΈΡ‚Ρ‚Π΅Π½ Ρ‚Ρ€Π°Ρ‚Ρ‹Π½ ΠΊΠΎΠ΄. Ris4 2. 8 Π±ΠΈΡ‚Ρ‚Π΅Π½ Ρ‚Ρ€Π°Ρ‚Ρ‹Π½ ΠΊΠΎΠ΄ Ρ„ΠΎΡ‚ΠΎ. 8 Π±ΠΈΡ‚Ρ‚Π΅Π½ Ρ‚Ρ€Π°Ρ‚Ρ‹Π½ ΠΊΠΎΠ΄-Ris4 2. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° 8 Π±ΠΈΡ‚Ρ‚Π΅Π½ Ρ‚Ρ€Π°Ρ‚Ρ‹Π½ ΠΊΠΎΠ΄. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° Ris4 2. Для ΠΏΠΎΠ»Π½ΠΎΡ‚Ρ‹ понимания Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Ρ‡Π΅Ρ‚ΠΊΠΎ Π·Π½Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π±ΠΈΡ‚ ΠΈ Π±Π°ΠΉΡ‚, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΡƒΠΌΠ΅Ρ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ систСмы счислСния.

Двоичная систСма счислСния

Двоичная систСма счислСния ΠΎΠΏΠ΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ всСго лишь двумя символами 0 ΠΈ 1. Она повсСмСстно примСняСтся Π² Ρ†ΠΈΡ„Ρ€ΠΎΠ²ΠΎΠΉ Ρ‚Π΅Ρ…Π½ΠΈΠΊΠ΅, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΡ‡Π΅Π½ΡŒ ΡƒΠ΄Π°Ρ‡Π½ΠΎ сочСтаСтся с двумя устойчивыми состояниями элСктричСской Ρ†Π΅ΠΏΠ΅ΠΉ: Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΎ ΠΈ Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΎ Π»ΠΈΠ±ΠΎ Π΅ΡΡ‚ΡŒ сигнал ΠΈ Π½Π΅Ρ‚ сигнала. Π’Π°ΠΊΠΆΠ΅ Π½ΡƒΠ»Π΅ΠΌ Π΅Ρ‰Π΅ ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°ΡŽΡ‚ сигнал Π½ΠΈΠ·ΠΊΠΎΠ³ΠΎ уровня, Π° Π΅Π΄ΠΈΠ½ΠΈΡ†Π΅ΠΉ – высокого.

8 Π±ΠΈΡ‚Ρ‚Π΅Π½ Ρ‚Ρ€Π°Ρ‚Ρ‹Π½ ΠΊΠΎΠ΄. Ris5 1. 8 Π±ΠΈΡ‚Ρ‚Π΅Π½ Ρ‚Ρ€Π°Ρ‚Ρ‹Π½ ΠΊΠΎΠ΄ Ρ„ΠΎΡ‚ΠΎ. 8 Π±ΠΈΡ‚Ρ‚Π΅Π½ Ρ‚Ρ€Π°Ρ‚Ρ‹Π½ ΠΊΠΎΠ΄-Ris5 1. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° 8 Π±ΠΈΡ‚Ρ‚Π΅Π½ Ρ‚Ρ€Π°Ρ‚Ρ‹Π½ ΠΊΠΎΠ΄. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° Ris5 1. Для ΠΏΠΎΠ»Π½ΠΎΡ‚Ρ‹ понимания Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Ρ‡Π΅Ρ‚ΠΊΠΎ Π·Π½Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π±ΠΈΡ‚ ΠΈ Π±Π°ΠΉΡ‚, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΡƒΠΌΠ΅Ρ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ систСмы счислСния.

ΠŸΠΎΡ€ΡΠ΄ΠΎΠΊ записи Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠ³ΠΎ числа ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ соотвСтствуСт дСсятичному. ВСса ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΉ Ρ‚Π°ΠΊΠΆΠ΅ Π²ΠΎΠ·Ρ€Π°ΡΡ‚Π°ΡŽΡ‚ справа Π½Π°Π»Π΅Π²ΠΎ. Волько основаниСм являСтся 2, Π° Π½Π΅ 10.

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚Π»ΠΈΡ‡Π°Ρ‚ΡŒ Π΄Π²ΠΎΠΈΡ‡Π½ΡƒΡŽ систСму ΠΎΡ‚ дСсятичной Π² Ρ†ΠΈΡ„Ρ€ΠΎΠ²ΠΎΠΉ Ρ‚Π΅Ρ…Π½ΠΈΠΊΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ индСкс 2 ΠΈ 10 соотвСтствСнно:

110110 – дСсятичноС.

ΠŸΡ€ΠΈ написании ΠΊΠΎΠ΄Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ для обозначСния Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠ³ΠΎ значСния ΠΏΠ΅Ρ€Π΅Π΄ Π½ΠΈΠΌ ставится прСфикс 0b, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ 0b11010101. Если записываСтся дСсятичноС, Ρ‚ΠΎ ΠΏΠ΅Ρ€Π΅Π΄ Π½ΠΈΠΌ Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ ставится.

0b11010101 – Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠ΅;

11010101 – дСсятичноС.

Π‘ΠΈΡ‚ ΠΈ Π±Π°ΠΉΡ‚

Двоичная систСма счислСния Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΏΡ€ΠΈ Ρ…Ρ€Π°Π½Π΅Π½ΠΈΠΈ ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ.

Вся информация Ρ†ΠΈΡ„Ρ€ΠΎΠ²Ρ‹Ρ… Π·Π°ΠΏΠΎΠΌΠΈΠ½Π°ΡŽΡ‰ΠΈΡ… устройств хранится Π² памяти. ΠŸΠ°ΠΌΡΡ‚ΡŒ прСдставляСт собой Π½Π°Π±ΠΎΡ€ ячССк.

8 Π±ΠΈΡ‚Ρ‚Π΅Π½ Ρ‚Ρ€Π°Ρ‚Ρ‹Π½ ΠΊΠΎΠ΄. Ris6 1. 8 Π±ΠΈΡ‚Ρ‚Π΅Π½ Ρ‚Ρ€Π°Ρ‚Ρ‹Π½ ΠΊΠΎΠ΄ Ρ„ΠΎΡ‚ΠΎ. 8 Π±ΠΈΡ‚Ρ‚Π΅Π½ Ρ‚Ρ€Π°Ρ‚Ρ‹Π½ ΠΊΠΎΠ΄-Ris6 1. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° 8 Π±ΠΈΡ‚Ρ‚Π΅Π½ Ρ‚Ρ€Π°Ρ‚Ρ‹Π½ ΠΊΠΎΠ΄. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° Ris6 1. Для ΠΏΠΎΠ»Π½ΠΎΡ‚Ρ‹ понимания Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Ρ‡Π΅Ρ‚ΠΊΠΎ Π·Π½Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π±ΠΈΡ‚ ΠΈ Π±Π°ΠΉΡ‚, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΡƒΠΌΠ΅Ρ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ систСмы счислСния.

КаТдая ячСйка содСрТит ΠΎΠ΄ΠΈΠ½ Π±ΠΈΡ‚ Π΄Π°Π½Π½Ρ‹Ρ…. Π‘ΠΈΡ‚ – это Π΅Π΄ΠΈΠ½ΠΈΡ†Π° измСрСния объСма памяти. Π’ ΠΎΠ΄Π½ΠΎΠΌ Π±ΠΈΡ‚Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΠΎΠΌΠΈΠ½Π°Ρ‚ΡŒ максимум Π΄Π²Π° значСния: 0 – это ΠΎΠ΄Π½ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Π° 1 – Π²Ρ‚ΠΎΡ€ΠΎΠ΅.

8 Π±ΠΈΡ‚Ρ‚Π΅Π½ Ρ‚Ρ€Π°Ρ‚Ρ‹Π½ ΠΊΠΎΠ΄. Ris7 1. 8 Π±ΠΈΡ‚Ρ‚Π΅Π½ Ρ‚Ρ€Π°Ρ‚Ρ‹Π½ ΠΊΠΎΠ΄ Ρ„ΠΎΡ‚ΠΎ. 8 Π±ΠΈΡ‚Ρ‚Π΅Π½ Ρ‚Ρ€Π°Ρ‚Ρ‹Π½ ΠΊΠΎΠ΄-Ris7 1. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° 8 Π±ΠΈΡ‚Ρ‚Π΅Π½ Ρ‚Ρ€Π°Ρ‚Ρ‹Π½ ΠΊΠΎΠ΄. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° Ris7 1. Для ΠΏΠΎΠ»Π½ΠΎΡ‚Ρ‹ понимания Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Ρ‡Π΅Ρ‚ΠΊΠΎ Π·Π½Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π±ΠΈΡ‚ ΠΈ Π±Π°ΠΉΡ‚, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΡƒΠΌΠ΅Ρ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ систСмы счислСния.

Bit происходит ΠΎΡ‚ Π΄Π²ΡƒΡ… английских слов Binary Digit (Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠ΅ число).

ΠŸΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с Π±ΠΈΡ‚Π°ΠΌΠΈ рСгистров ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ часто ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ ΠΊ Ρ‚Π°ΠΊΠΈΠΌ понятиям, ΠΊΠ°ΠΊ ΡΡ‚Π°Ρ€ΡˆΠΈΠΉ ΠΈ младший Π±ΠΈΡ‚Ρ‹. Π­Ρ‚ΠΈ понятия строго Ρ€Π΅Π³Π»Π°ΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹. Π’ Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠΉ систСмС разряд, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΠΌΠ΅Π΅Ρ‚ ΡΠ°ΠΌΡƒΡŽ ΠΏΡ€Π°Π²ΡƒΡŽ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ, ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ» Π½Π°Π·Π²Π°Π½ΠΈΠ΅ младший Π·Π½Π°Ρ‡Π°Ρ‰ΠΈΠΉ Π±ΠΈΡ‚ (ΠœΠ—Π‘). Π’ англоязычной Π»ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΡƒΡ€Π΅ Π΅Π³ΠΎ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ Least Significant Bit (LSB). ИмСнно с Π½Π΅Π³ΠΎ начинаСтся нумСрация Π±ΠΈΡ‚ΠΎΠ².

8 Π±ΠΈΡ‚Ρ‚Π΅Π½ Ρ‚Ρ€Π°Ρ‚Ρ‹Π½ ΠΊΠΎΠ΄. Ris8 1. 8 Π±ΠΈΡ‚Ρ‚Π΅Π½ Ρ‚Ρ€Π°Ρ‚Ρ‹Π½ ΠΊΠΎΠ΄ Ρ„ΠΎΡ‚ΠΎ. 8 Π±ΠΈΡ‚Ρ‚Π΅Π½ Ρ‚Ρ€Π°Ρ‚Ρ‹Π½ ΠΊΠΎΠ΄-Ris8 1. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° 8 Π±ΠΈΡ‚Ρ‚Π΅Π½ Ρ‚Ρ€Π°Ρ‚Ρ‹Π½ ΠΊΠΎΠ΄. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° Ris8 1. Для ΠΏΠΎΠ»Π½ΠΎΡ‚Ρ‹ понимания Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Ρ‡Π΅Ρ‚ΠΊΠΎ Π·Π½Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π±ΠΈΡ‚ ΠΈ Π±Π°ΠΉΡ‚, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΡƒΠΌΠ΅Ρ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ систСмы счислСния.

Наибольший вСс ΠΈΠΌΠ΅Π΅Ρ‚ Π±ΠΈΡ‚, находящийся Π² самой Π»Π΅Π²ΠΎΠΉ ячСйкС памяти. Π•Π³ΠΎ принято Π½Π°Π·Ρ‹Π²Π°Ρ‚ΡŒ ΡΡ‚Π°Ρ€ΡˆΠΈΠΉ Π·Π½Π°Ρ‡Π°Ρ‰ΠΈΠΉ Π±ΠΈΡ‚ (Π‘Π—Π‘) ΠΈΠ»ΠΈ Most Significant Bit – MSB.

Π‘ΠΎΠ»Π΅Π΅ Π΅ΠΌΠΊΠΎΠΉ Π΅Π΄ΠΈΠ½ΠΈΡ†Π΅ΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ являСтся Π±Π°ΠΉΡ‚ (byte). Он Ρ€Π°Π²Π΅Π½ 8 Π±ΠΈΡ‚Π°ΠΌ, Ρ‚. Π΅. восСмь элСмСнтарных ячССк памяти ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ ΠΎΠ΄ΠΈΠ½ Π±Π°ΠΉΡ‚.

1 Π±Π°ΠΉΡ‚ = 8 Π±ΠΈΡ‚

8 Π±ΠΈΡ‚Ρ‚Π΅Π½ Ρ‚Ρ€Π°Ρ‚Ρ‹Π½ ΠΊΠΎΠ΄. Ris9 1. 8 Π±ΠΈΡ‚Ρ‚Π΅Π½ Ρ‚Ρ€Π°Ρ‚Ρ‹Π½ ΠΊΠΎΠ΄ Ρ„ΠΎΡ‚ΠΎ. 8 Π±ΠΈΡ‚Ρ‚Π΅Π½ Ρ‚Ρ€Π°Ρ‚Ρ‹Π½ ΠΊΠΎΠ΄-Ris9 1. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° 8 Π±ΠΈΡ‚Ρ‚Π΅Π½ Ρ‚Ρ€Π°Ρ‚Ρ‹Π½ ΠΊΠΎΠ΄. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° Ris9 1. Для ΠΏΠΎΠ»Π½ΠΎΡ‚Ρ‹ понимания Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Ρ‡Π΅Ρ‚ΠΊΠΎ Π·Π½Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π±ΠΈΡ‚ ΠΈ Π±Π°ΠΉΡ‚, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΡƒΠΌΠ΅Ρ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ систСмы счислСния.

Π’ ΠΎΠ΄Π½ΠΎΠΌ Π±ΠΈΡ‚Π΅ ΠΌΠΎΠΆΠ½ΠΎ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π΄Π²Π° Ρ€Π°Π·Π½Ρ‹Ρ… значСния ΠΈΠ»ΠΈ Π΄Π²Π΅ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠΈ. А Π² 1 Π±Π°ΠΉΡ‚Π΅ ΠΌΠΎΠΆΠ½ΠΎ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ 256 Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠΉ. Π ΠΎΠ²Π½ΠΎ ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΆΠ΅ символов содСрТится Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΈ ASCII. Но ΠΎΠ± этом Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ Ρ€Π°Π·.

На ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅ ΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ большими значСниями ΠΎΠ±ΡŠΡ‘ΠΌΠ° памяти ΠΊΠΈΠ»ΠΎΠ±Π°ΠΉΡ‚Π°ΠΌΠΈ, ΠΌΠ΅Π³Π°Π±Π°ΠΉΡ‚Π°ΠΌΠΈ, Π³ΠΈΠ³Π°Π±Π°ΠΉΡ‚Π°ΠΌΠΈ ΠΈ Ρ‚Π΅Ρ€Π°Π±Π°ΠΉΡ‚Π°ΠΌΠΈ.

1 ΠΊΠΈΠ»ΠΎΠ±Π°ΠΉΡ‚ (ΠΊΠ‘) = 1024 Π±Π°ΠΉΡ‚

1 ΠΌΠ΅Π³Π°Π±Π°ΠΉΡ‚ (ΠœΠ‘) = 1024 ΠΊΠ‘

1 Π³ΠΈΠ³Π°Π±Π°ΠΉΡ‚ (Π“Π‘) = 1024 ΠœΠ‘

1 Ρ‚Π΅Ρ€Π°Π±Π°ΠΉΡ‚ (Π’Π‘) = 1024 Π“Π‘

ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ дСсятичного числа Π² Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠ΅

На ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅ программисты часто ΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ нСсколькими систСмами счислСния. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ слСдуСт Π½Π°ΡƒΡ‡ΠΈΡ‚ΡŒΡΡ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ΠΈΡ‚ΡŒ числа ΠΈΠ· дСсятичной систСмы Π² Π΄Π²ΠΎΠΈΡ‡Π½ΡƒΡŽ. Π—Π΄Π΅ΡΡŒ ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ Π΄Π²Π° простых способа. Рассмотрим ΠΈΡ… ΠΏΠΎ порядку.

ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ способ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ дСсятичноС число Π½Π΅ΠΏΡ€Π΅Ρ€Ρ‹Π²Π½ΠΎ дСлится Π½Π° Π΄Π²Π°. ΠŸΡ€ΠΈ этом учитываСтся ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ Π»ΠΈ ΠΎΠ½ΠΎ Ρ€Π°Π·Π΄Π΅Π»ΠΈΠ»ΠΎΡΡŒ ΠΈΠ»ΠΈ с остатком. Если Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ дСлится Π±Π΅Π· остатка, ΠΊΠ°ΠΊ Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ 4/2 = Ρ€ΠΎΠ²Π½ΠΎ 2 ΠΈΠ»ΠΈ 6/2 = Ρ€ΠΎΠ²Π½ΠΎ 3, Ρ‚ΠΎ записываСтся ноль, Π° Ссли с остатком, ΠΊΠ°ΠΊ 3/2 ΠΈΠ»ΠΈ 5/2, Ρ‚ΠΎ записываСтся Π΅Π΄ΠΈΠ½ΠΈΡ†Π°.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π΄Π°Π²Π°ΠΉΡ‚Π΅ ΠΏΠ΅Ρ€Π΅Π²Π΅Π΄Π΅ΠΌ число 125 Π² Π΄Π²ΠΎΠΈΡ‡Π½ΡƒΡŽ Ρ„ΠΎΡ€ΠΌΡƒ.

125/2 = 62 остаток 1

ΠŸΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠ΅ число 11111012

Π― надСюсь здСсь понятно, Ρ‡Ρ‚ΠΎ Ссли 1 Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ Π½Π° 2, Ρ‚ΠΎ матСматичСски ноль Π½ΠΈΠΊΠ°ΠΊ Π½Π΅ получится, ΠΎΠ΄Π½Π°ΠΊΠΎ Ρ‚Π°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ позволяСт ΠΎΠ±ΡŠΡΡΠ½ΠΈΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹ΠΉ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ.

Π’Ρ‚ΠΎΡ€ΠΎΠΉ способ

Π’Ρ‚ΠΎΡ€ΠΎΠΉ способ ΠΈΠΌΠ΅Π΅Ρ‚ Ρ‚Π°ΠΊΡƒΡŽ идСю. Π‘ ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ числа Π½ΡƒΠΆΠ½ΠΎ Π²Ρ‹Ρ‡Π΅ΡΡ‚ΡŒ число Π² стСпСни Π΄Π²Π°, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ мСньшС Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ значСния. Для ускорСния процСсса прСобразования Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Π΅ΠΉ.

8 Π±ΠΈΡ‚Ρ‚Π΅Π½ Ρ‚Ρ€Π°Ρ‚Ρ‹Π½ ΠΊΠΎΠ΄. Ris10 1. 8 Π±ΠΈΡ‚Ρ‚Π΅Π½ Ρ‚Ρ€Π°Ρ‚Ρ‹Π½ ΠΊΠΎΠ΄ Ρ„ΠΎΡ‚ΠΎ. 8 Π±ΠΈΡ‚Ρ‚Π΅Π½ Ρ‚Ρ€Π°Ρ‚Ρ‹Π½ ΠΊΠΎΠ΄-Ris10 1. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° 8 Π±ΠΈΡ‚Ρ‚Π΅Π½ Ρ‚Ρ€Π°Ρ‚Ρ‹Π½ ΠΊΠΎΠ΄. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° Ris10 1. Для ΠΏΠΎΠ»Π½ΠΎΡ‚Ρ‹ понимания Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Ρ‡Π΅Ρ‚ΠΊΠΎ Π·Π½Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π±ΠΈΡ‚ ΠΈ Π±Π°ΠΉΡ‚, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΡƒΠΌΠ΅Ρ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ систСмы счислСния.

Π”Π°Π²Π°ΠΉΡ‚Π΅ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅ΠΌ 125.

8 Π±ΠΈΡ‚Ρ‚Π΅Π½ Ρ‚Ρ€Π°Ρ‚Ρ‹Π½ ΠΊΠΎΠ΄. Ris11 1. 8 Π±ΠΈΡ‚Ρ‚Π΅Π½ Ρ‚Ρ€Π°Ρ‚Ρ‹Π½ ΠΊΠΎΠ΄ Ρ„ΠΎΡ‚ΠΎ. 8 Π±ΠΈΡ‚Ρ‚Π΅Π½ Ρ‚Ρ€Π°Ρ‚Ρ‹Π½ ΠΊΠΎΠ΄-Ris11 1. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° 8 Π±ΠΈΡ‚Ρ‚Π΅Π½ Ρ‚Ρ€Π°Ρ‚Ρ‹Π½ ΠΊΠΎΠ΄. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° Ris11 1. Для ΠΏΠΎΠ»Π½ΠΎΡ‚Ρ‹ понимания Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Ρ‡Π΅Ρ‚ΠΊΠΎ Π·Π½Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π±ΠΈΡ‚ ΠΈ Π±Π°ΠΉΡ‚, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΡƒΠΌΠ΅Ρ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ систСмы счислСния.

Π‘Π»Π΅Π΄ΡƒΠ΅Ρ‚ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ особоС Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ нумСрация Π±ΠΈΡ‚ΠΎΠ², Π²ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, выполняСтся справа Π½Π°Π»Π΅Π²ΠΎ, Π° Π²ΠΎ-Π²Ρ‚ΠΎΡ€Ρ‹Ρ… начинаСтся с нуля! Π­Ρ‚ΠΎ нСсколько Π½Π΅ΠΏΡ€ΠΈΠ²Ρ‹Ρ‡Π½ΠΎ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π² дСсятичной систСмС счислСния счСт принято Π½Π°Ρ‡ΠΈΠ½Π°Ρ‚ΡŒ с Π΅Π΄ΠΈΠ½ΠΈΡ†Ρ‹. Однако Π² Ρ†ΠΈΡ„Ρ€ΠΎΠ²ΠΎΠΉ Ρ‚Π΅Ρ…Π½ΠΈΠΊΠ΅ счСт всСгда ΠΈΠ΄Π΅Ρ‚ с нуля! К этому слСдуСт ΠΏΡ€ΠΈΡƒΡ‡ΠΈΡ‚ΡŒ сСбя Π·Π°Ρ€Π°Π½Π΅Π΅, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΏΡ€ΠΈ написании ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ для ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ΠΎΠ² ΠΌΡ‹ всС врСмя Π±ΡƒΠ΄Π΅ΠΌ Π½Π°Ρ‡ΠΈΠ½Π°Ρ‚ΡŒ счСт Π±ΠΈΡ‚ΠΎΠ² с нуля. Π’ дальнСйшСм Π²Ρ‹ Ρ‚Π°ΠΊΠΎΠΌΡƒ счСту быстро ΠΏΡ€ΠΈΠ²Ρ‹ΠΊΠ½Π΅Ρ‚Π΅, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΈ Π² тСхничСском описании МК строго ΡΠΎΠ±Π»ΡŽΠ΄Π°Π΅Ρ‚ΡΡ Π΄Π°Π½Π½ΠΎΠ΅ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ.

ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠ³ΠΎ числа Π² дСсятичноС

ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠ³ΠΎ числа Π² дСсятичноС выполняСтся довольно просто. Для этого слСдуСт ΡΠ»ΠΎΠΆΠΈΡ‚ΡŒ дСсятичныС вСса всСх Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹Ρ… разрядов, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΈΠΌΠ΅ΡŽΡ‚ΡΡ Π΅Π΄ΠΈΠ½ΠΈΡ†Ρ‹. Π‘ΠΈΡ‚Ρ‹, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… записан ноль, ΠΏΡ€ΠΎΠΏΡƒΡΠΊΠ°ΡŽΡ‚ΡΡ. Π’ качСствС ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° возьмСм Ρ‚Π°ΠΊΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅: 10101101. НулСвой, Π²Ρ‚ΠΎΡ€ΠΎΠΉ, Ρ‚Ρ€Π΅Ρ‚ΠΈΠΉ, пятый ΠΈ сСдьмой Π±ΠΈΡ‚Ρ‹ ΠΈΠΌΠ΅ΡŽΡ‚ Π΅Π΄ΠΈΠ½ΠΈΡ†Ρ‹. ΠŸΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ: 2 0 + 2 2 + 2 3 + 2 5 + 2 7 = 1 + 4 +8 + 32 + 128 = 173.

Π’ Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ…, ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹Ρ… Π½ΠΈΠΆΠ΅, наглядно ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ чисСл ΠΈΠ· Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠΉ Π² Π΄Π΅ΡΡΡ‚ΠΈΡ‡Π½ΡƒΡŽ систСму счислСния.

8 Π±ΠΈΡ‚Ρ‚Π΅Π½ Ρ‚Ρ€Π°Ρ‚Ρ‹Π½ ΠΊΠΎΠ΄. Ris12 1. 8 Π±ΠΈΡ‚Ρ‚Π΅Π½ Ρ‚Ρ€Π°Ρ‚Ρ‹Π½ ΠΊΠΎΠ΄ Ρ„ΠΎΡ‚ΠΎ. 8 Π±ΠΈΡ‚Ρ‚Π΅Π½ Ρ‚Ρ€Π°Ρ‚Ρ‹Π½ ΠΊΠΎΠ΄-Ris12 1. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° 8 Π±ΠΈΡ‚Ρ‚Π΅Π½ Ρ‚Ρ€Π°Ρ‚Ρ‹Π½ ΠΊΠΎΠ΄. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° Ris12 1. Для ΠΏΠΎΠ»Π½ΠΎΡ‚Ρ‹ понимания Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Ρ‡Π΅Ρ‚ΠΊΠΎ Π·Π½Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π±ΠΈΡ‚ ΠΈ Π±Π°ΠΉΡ‚, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΡƒΠΌΠ΅Ρ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ систСмы счислСния.

8 Π±ΠΈΡ‚Ρ‚Π΅Π½ Ρ‚Ρ€Π°Ρ‚Ρ‹Π½ ΠΊΠΎΠ΄. Ris13 1. 8 Π±ΠΈΡ‚Ρ‚Π΅Π½ Ρ‚Ρ€Π°Ρ‚Ρ‹Π½ ΠΊΠΎΠ΄ Ρ„ΠΎΡ‚ΠΎ. 8 Π±ΠΈΡ‚Ρ‚Π΅Π½ Ρ‚Ρ€Π°Ρ‚Ρ‹Π½ ΠΊΠΎΠ΄-Ris13 1. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° 8 Π±ΠΈΡ‚Ρ‚Π΅Π½ Ρ‚Ρ€Π°Ρ‚Ρ‹Π½ ΠΊΠΎΠ΄. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° Ris13 1. Для ΠΏΠΎΠ»Π½ΠΎΡ‚Ρ‹ понимания Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Ρ‡Π΅Ρ‚ΠΊΠΎ Π·Π½Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π±ΠΈΡ‚ ΠΈ Π±Π°ΠΉΡ‚, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΡƒΠΌΠ΅Ρ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ систСмы счислСния.

ШСстнадцатСричная систСма счислСния

Π’ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ΠΎΠ² ΠΎΡ‡Π΅Π½ΡŒ часто ΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΡˆΠ΅ΡΡ‚Π½Π°Π΄Ρ†Π°Ρ‚Π΅Ρ€ΠΈΡ‡Π½Ρ‹ΠΌΠΈ числами. Данная систСма счислСния ΠΈΠΌΠ΅Π΅Ρ‚ основаниС 16, соотвСтствСнно ΠΈ 16 Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… символов. ΠŸΠ΅Ρ€Π²Ρ‹Π΅ Π΄Π΅ΡΡΡ‚ΡŒ символов 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 заимствованы ΠΈΠ· дСсятСричной систСмы. Π’ качСствС ΠΎΡΡ‚Π°Π²ΡˆΠΈΡ…ΡΡ ΡˆΠ΅ΡΡ‚ΠΈ символов ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ Π±ΡƒΠΊΠ²Ρ‹ A, B, C, D, E, F.

0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F

8 Π±ΠΈΡ‚Ρ‚Π΅Π½ Ρ‚Ρ€Π°Ρ‚Ρ‹Π½ ΠΊΠΎΠ΄. Ris14. 8 Π±ΠΈΡ‚Ρ‚Π΅Π½ Ρ‚Ρ€Π°Ρ‚Ρ‹Π½ ΠΊΠΎΠ΄ Ρ„ΠΎΡ‚ΠΎ. 8 Π±ΠΈΡ‚Ρ‚Π΅Π½ Ρ‚Ρ€Π°Ρ‚Ρ‹Π½ ΠΊΠΎΠ΄-Ris14. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° 8 Π±ΠΈΡ‚Ρ‚Π΅Π½ Ρ‚Ρ€Π°Ρ‚Ρ‹Π½ ΠΊΠΎΠ΄. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° Ris14. Для ΠΏΠΎΠ»Π½ΠΎΡ‚Ρ‹ понимания Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Ρ‡Π΅Ρ‚ΠΊΠΎ Π·Π½Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π±ΠΈΡ‚ ΠΈ Π±Π°ΠΉΡ‚, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΡƒΠΌΠ΅Ρ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ систСмы счислСния.

Высокая ΠΏΠΎΠΏΡƒΠ»ΡΡ€Π½ΠΎΡΡ‚ΡŒ ΡˆΠ΅ΡΡ‚Π½Π°Π΄Ρ†Π°Ρ‚Π΅Ρ€ΠΈΡ‡Π½ΠΎΠΉ систСмы счислСния поясняСтся Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈ Ρ‚ΠΎΠ³ΠΎ ΠΆΠ΅ значСния ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ мСньшС разрядов ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с дСсятичной систСмой ΠΈ Ρ‚Π΅ΠΌ Π±ΠΎΠ»Π΅Π΅ с Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠΉ. НапримСр, ΠΏΡ€ΠΈ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ 100 ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Ρ‚Ρ€ΠΈ дСсятичных разряда 10010 ΠΈΠ»ΠΈ 7 Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹Ρ… разрядов 11001002 ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ 2 ΡˆΠ΅ΡΡ‚Π½Π°Π΄Ρ†Π°Ρ‚Π΅Ρ€ΠΈΡ‡Π½Ρ‹Ρ… разряда 6416.

А Ссли Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ 1000000, Ρ‚ΠΎ Ρ€Π°Π·Π½ΠΈΡ†Π° Π² количСствС Π·Π°Π½ΠΈΠΌΠ°Π΅ΠΌΡ‹Ρ… разрядов Π±ΡƒΠ΄Π΅ Π΅Ρ‰Π΅ Π±ΠΎΠ»Π΅Π΅ ΠΎΡ‰ΡƒΡ‚ΠΈΠΌΠ°:

1 000 00010 = 1111 0100 0010 0100 00002 = F424016

ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠ³ΠΎ числа Π² ΡˆΠ΅ΡΡ‚Π½Π°Π΄Ρ†Π°Ρ‚Π΅Ρ€ΠΈΡ‡Π½ΠΎΠ΅

Π•Ρ‰Π΅ ΠΎΠ΄Π½ΠΈΠΌ ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ свойством ΡˆΠ΅ΡΡ‚Π½Π°Π΄Ρ†Π°Ρ‚Π΅Ρ€ΠΈΡ‡Π½ΠΎΠ³ΠΎ числа являСтся простота ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ Π΅Π³ΠΎ ΠΈΠ· Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠ³ΠΎ. Π’Π°ΠΊΠΎΠ΅ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ выполняСтся ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ: сначала Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠ΅ число разбиваСтся Π½Π° Π³Ρ€ΡƒΠΏΠΏΡ‹ ΠΏΠΎ Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ Π±Ρ‹Ρ‚Π° ΠΈΠ»ΠΈ Π½Π° ΠΏΠΎΠ»ΡƒΠ±Π°ΠΉΡ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΅Ρ‰Π΅ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ Ρ‚Π΅Ρ‚Ρ€Π°Π΄Π°ΠΌΠΈ. Если количСство Π±ΠΈΡ‚ΠΎΠ² Π½Π΅ ΠΊΡ€Π°Ρ‚Π½ΠΎ Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ΠΌ, Ρ‚ΠΎ ΠΈΡ… Π΄ΠΎΠΏΠΎΠ»Π½ΡΡŽΡ‚ нулями. Π”Π°Π»Π΅Π΅ слСдуСт ΡΠ»ΠΎΠΆΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ всСх Π±ΠΈΡ‚ΠΎΠ² Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΏΠΎΠ»ΡƒΠ±Π°ΠΉΡ‚Π΅. Π‘ΡƒΠΌΠΌΠ° ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡƒΠ±Π°ΠΉΡ‚Π° даст Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΉ Ρ†ΠΈΡ„Ρ€Ρ‹ ΡˆΠ΅ΡΡ‚Π½Π°Π΄Ρ†Π°Ρ‚Π΅Ρ€ΠΈΡ‡Π½ΠΎΠ³ΠΎ числа.

8 Π±ΠΈΡ‚Ρ‚Π΅Π½ Ρ‚Ρ€Π°Ρ‚Ρ‹Π½ ΠΊΠΎΠ΄. Ris15. 8 Π±ΠΈΡ‚Ρ‚Π΅Π½ Ρ‚Ρ€Π°Ρ‚Ρ‹Π½ ΠΊΠΎΠ΄ Ρ„ΠΎΡ‚ΠΎ. 8 Π±ΠΈΡ‚Ρ‚Π΅Π½ Ρ‚Ρ€Π°Ρ‚Ρ‹Π½ ΠΊΠΎΠ΄-Ris15. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° 8 Π±ΠΈΡ‚Ρ‚Π΅Π½ Ρ‚Ρ€Π°Ρ‚Ρ‹Π½ ΠΊΠΎΠ΄. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° Ris15. Для ΠΏΠΎΠ»Π½ΠΎΡ‚Ρ‹ понимания Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Ρ‡Π΅Ρ‚ΠΊΠΎ Π·Π½Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π±ΠΈΡ‚ ΠΈ Π±Π°ΠΉΡ‚, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΡƒΠΌΠ΅Ρ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ систСмы счислСния.

Π”Ρ€ΡƒΠ³ΠΈΠ΅ систСмы счислСния

Π’ Ρ†ΠΈΡ„Ρ€ΠΎΠ²ΠΎΠΉ Ρ‚Π΅Ρ…Π½ΠΈΠΊΠ΅ Ρ‚Π°ΠΊΠΆΠ΅ примСняСтся Π²ΠΎΡΡŒΠΌΠ΅Ρ€ΠΈΡ‡Π½Π°Ρ систСма счислСния, Π½ΠΎ ΠΎΠ½Π° Π½Π΅ нашла примСнСния Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°Ρ….

ВСорСтичСскиС ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ бСсконСчноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ систСм счислСния: Ρ‚Ρ€ΠΎΠΈΡ‡Π½ΡƒΡŽ, ΠΏΡΡ‚ΠΈΡ€ΠΈΡ‡Π½ΡƒΡŽ ΠΈ Π΄Π°ΠΆΠ΅ ΡΡ‚ΠΎΡ€ΠΈΡ‡Π½ΡƒΡŽ, Ρ‚.Π΅. с Π»ΡŽΠ±Ρ‹ΠΌ основаниСм. Однако практичСской нСобходимости Π² этом ΠΏΠΎΠΊΠ° Ρ‡Ρ‚ΠΎ Π½Π΅Ρ‚.

НаиболСС простой ΠΈ быстрый способ прСобразования чисСл с ΠΎΠ΄Π½ΠΎΠΉ систСмы счислСния Π² Π΄Ρ€ΡƒΠ³ΡƒΡŽ – это ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ встроСнного Π² ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΡƒΡŽ систСму ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€Π°. Найти Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ: ΠŸΡƒΡΠΊ – ВсС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ – Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½Ρ‹Π΅ – ΠšΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€.

8 Π±ΠΈΡ‚Ρ‚Π΅Π½ Ρ‚Ρ€Π°Ρ‚Ρ‹Π½ ΠΊΠΎΠ΄. Ris16. 8 Π±ΠΈΡ‚Ρ‚Π΅Π½ Ρ‚Ρ€Π°Ρ‚Ρ‹Π½ ΠΊΠΎΠ΄ Ρ„ΠΎΡ‚ΠΎ. 8 Π±ΠΈΡ‚Ρ‚Π΅Π½ Ρ‚Ρ€Π°Ρ‚Ρ‹Π½ ΠΊΠΎΠ΄-Ris16. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° 8 Π±ΠΈΡ‚Ρ‚Π΅Π½ Ρ‚Ρ€Π°Ρ‚Ρ‹Π½ ΠΊΠΎΠ΄. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° Ris16. Для ΠΏΠΎΠ»Π½ΠΎΡ‚Ρ‹ понимания Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Ρ‡Π΅Ρ‚ΠΊΠΎ Π·Π½Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π±ΠΈΡ‚ ΠΈ Π±Π°ΠΉΡ‚, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΡƒΠΌΠ΅Ρ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ систСмы счислСния.

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ Π² Β«Π½ΡƒΠΆΠ½Ρ‹ΠΉΒ» Ρ€Π΅ΠΆΠΈΠΌ слСдуСт ΠΊΠ»ΠΈΠΊΠ½ΡƒΡ‚ΡŒ ΠΏΠΎ Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ Π’ΠΈΠ΄ ΠΈ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡΡ‚ ΠΈΠ»ΠΈ Π½Π°ΠΆΠ°Ρ‚ΡŒ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΡŽ клавиш Alt+3.

8 Π±ΠΈΡ‚Ρ‚Π΅Π½ Ρ‚Ρ€Π°Ρ‚Ρ‹Π½ ΠΊΠΎΠ΄. Ris17. 8 Π±ΠΈΡ‚Ρ‚Π΅Π½ Ρ‚Ρ€Π°Ρ‚Ρ‹Π½ ΠΊΠΎΠ΄ Ρ„ΠΎΡ‚ΠΎ. 8 Π±ΠΈΡ‚Ρ‚Π΅Π½ Ρ‚Ρ€Π°Ρ‚Ρ‹Π½ ΠΊΠΎΠ΄-Ris17. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° 8 Π±ΠΈΡ‚Ρ‚Π΅Π½ Ρ‚Ρ€Π°Ρ‚Ρ‹Π½ ΠΊΠΎΠ΄. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° Ris17. Для ΠΏΠΎΠ»Π½ΠΎΡ‚Ρ‹ понимания Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Ρ‡Π΅Ρ‚ΠΊΠΎ Π·Π½Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π±ΠΈΡ‚ ΠΈ Π±Π°ΠΉΡ‚, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΡƒΠΌΠ΅Ρ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ систСмы счислСния.

Π’ ΠΎΡ‚ΠΊΡ€Ρ‹Π²ΡˆΠ΅ΠΌΡΡ ΠΎΠΊΠ½Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π²Π²ΠΎΠ΄ΠΈΡ‚ΡŒ Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹Π΅, Π²ΠΎΡΡŒΠΌΠ΅Ρ€ΠΈΡ‡Π½Ρ‹Π΅, ΡˆΠ΅ΡΡ‚Π½Π°Π΄Ρ†Π°Ρ‚Π΅Ρ€ΠΈΡ‡Π½Ρ‹Π΅ ΠΈ дСсятичныС числа, Π²Ρ‹Π±Ρ€Π°Π² ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ Ρ€Π΅ΠΆΠΈΠΌ. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ матСматичСскиС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ Π½ΠΈΠΌΠΈ.

8 Π±ΠΈΡ‚Ρ‚Π΅Π½ Ρ‚Ρ€Π°Ρ‚Ρ‹Π½ ΠΊΠΎΠ΄. Ris18. 8 Π±ΠΈΡ‚Ρ‚Π΅Π½ Ρ‚Ρ€Π°Ρ‚Ρ‹Π½ ΠΊΠΎΠ΄ Ρ„ΠΎΡ‚ΠΎ. 8 Π±ΠΈΡ‚Ρ‚Π΅Π½ Ρ‚Ρ€Π°Ρ‚Ρ‹Π½ ΠΊΠΎΠ΄-Ris18. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° 8 Π±ΠΈΡ‚Ρ‚Π΅Π½ Ρ‚Ρ€Π°Ρ‚Ρ‹Π½ ΠΊΠΎΠ΄. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° Ris18. Для ΠΏΠΎΠ»Π½ΠΎΡ‚Ρ‹ понимания Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Ρ‡Π΅Ρ‚ΠΊΠΎ Π·Π½Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π±ΠΈΡ‚ ΠΈ Π±Π°ΠΉΡ‚, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΡƒΠΌΠ΅Ρ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ систСмы счислСния.

Π’ дальнСйшСм, ΠΏΡ€ΠΈ написании ΠΊΠΎΠ΄Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΌΡ‹ часто Π±ΡƒΠ΄Π΅ΠΌ ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ ΠΊ Π΄Π°Π½Π½ΠΎΠΌΡƒ ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€Ρƒ. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΎΠΏΡ‹Ρ‚Π½Ρ‹Π΅ программисты Π»ΡŽΠ±ΡΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡˆΠ΅ΡΡ‚Π½Π°Π΄Ρ†Π°Ρ‚Π΅Ρ€ΠΈΡ‡Π½Ρ‹Π΅ числа, Π° Π½Π°ΠΌ ΠΏΡ€ΠΎΡ‰Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ½ΡΡ‚ΡŒ Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹ΠΉ ΠΊΠΎΠ΄, поэтому ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€ Π² ΠΏΠΎΠΌΠΎΡ‰ΡŒ)

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

ΠžΠ±ΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΎ подсчётС Π΅Π΄ΠΈΠ½ΠΈΡ‡Π½Ρ‹Ρ… Π±ΠΈΡ‚ΠΎΠ²

Π― Ρ…ΠΎΡ‚Π΅Π» Π±Ρ‹ ΠΏΠΎΠ΄Π°Ρ€ΠΈΡ‚ΡŒ сообщСству Π₯Π°Π±Ρ€Π° ΡΡ‚Π°Ρ‚ΡŒΡŽ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΡΡ‚Π°Ρ€Π°ΡŽΡΡŒ Π΄Π°Ρ‚ΡŒ достаточно ΠΏΠΎΠ»Π½ΠΎΠ΅ описаниС ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΎΠ² ΠΊ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°ΠΌ подсчёта Π΅Π΄ΠΈΠ½ΠΈΡ‡Π½Ρ‹Ρ… Π±ΠΈΡ‚ΠΎΠ² Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ ΠΎΡ‚ 8 Π΄ΠΎ 64 Π±ΠΈΡ‚ΠΎΠ². Π­Ρ‚ΠΈ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹ относятся ΠΊ Ρ€Π°Π·Π΄Π΅Π»Ρƒ Ρ‚Π°ΠΊ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΠΎΠΉ Β«Π±ΠΈΡ‚ΠΎΠ²ΠΎΠΉ ΠΌΠ°Π³ΠΈΠΈΒ» ΠΈΠ»ΠΈ Β«Π±ΠΈΡ‚ΠΎΠ²ΠΎΠΉ Π°Π»Ρ…ΠΈΠΌΠΈΠΈΒ», которая Π·Π°Π²ΠΎΡ€Π°ΠΆΠΈΠ²Π°Π΅Ρ‚ своСй красотой ΠΈ Π½Π΅ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎΡΡ‚ΡŒΡŽ ΠΌΠ½ΠΎΠ³ΠΈΡ… программистов. Π― Ρ…ΠΎΡ‡Ρƒ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π² основах этой Π°Π»Ρ…ΠΈΠΌΠΈΠΈ Π½Π΅Ρ‚ Π½ΠΈΡ‡Π΅Π³ΠΎ слоТного, ΠΈ Π²Ρ‹ Π΄Π°ΠΆΠ΅ смоТСтС Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ собствСнныС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ подсчёта Π΅Π΄ΠΈΠ½ΠΈΡ‡Π½Ρ‹Ρ… Π±ΠΈΡ‚ΠΎΠ², познакомившись с Ρ„ΡƒΠ½Π΄Π°ΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ ΠΏΡ€ΠΈΡ‘ΠΌΠ°ΠΌΠΈ, ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠΌΠΈ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Π΅ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹.

ΠŸΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΌΡ‹ Π½Π°Ρ‡Π½Ρ‘ΠΌ, я сразу Ρ…ΠΎΡ‡Ρƒ ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅Π΄ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ это ΡΡ‚Π°Ρ‚ΡŒΡ Π½Π΅ для Π½ΠΎΠ²ΠΈΡ‡ΠΊΠΎΠ² Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. МнС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ‡ΠΈΡ‚Π°Ρ‚Π΅Π»ΡŒ Π² ΠΎΠ±Ρ‰ΠΈΡ… Ρ‡Π΅Ρ€Ρ‚Π°Ρ… прСдставлял сСбС ΠΏΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠΈΠ΅ Π±ΠΈΡ‚ΠΎΠ²Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ (ΠΏΠΎΠ±ΠΈΡ‚ΠΎΠ²ΠΎΠ΅ Β«ΠΈΒ», Β«ΠΈΠ»ΠΈΒ», сдвиг), Ρ…ΠΎΡ€ΠΎΡˆΠΎ Π²Π»Π°Π΄Π΅Π» ΡˆΠ΅ΡΡ‚Π½Π°Π΄Ρ†Π°Ρ‚Π΅Ρ€ΠΈΡ‡Π½ΠΎΠΉ систСмой счислСния ΠΈ достаточно ΡƒΠ²Π΅Ρ€Π΅Π½Π½ΠΎ пользовался Π²ΠΎΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ, прСдставляя Π² Π½Ρ‘ΠΌ Π½Π΅ всСгда ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΠ΅ Π±ΠΈΡ‚ΠΎΠ²Ρ‹Π΅ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ. По возмоТности, всё Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠΏΡ€ΠΎΠ²ΠΎΠΆΠ΄Π°Ρ‚ΡŒΡΡ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ°ΠΌΠΈ, Π½ΠΎ сами ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ‚Π΅, ΠΎΠ½ΠΈ лишь ΡƒΠΏΡ€ΠΎΡ‰Π°ΡŽΡ‚, Π½ΠΎ Π½Π΅ Π·Π°ΠΌΠ΅Π½ΡΡŽΡ‚ ΠΏΠΎΠ»Π½ΠΎΠ΅ прСдставлСниС.

ВсС описанныС ΠΏΡ€ΠΈΡ‘ΠΌΡ‹ Π±Ρ‹Π»ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ‹ Π½Π° языкС Π‘ΠΈ ΠΈ протСстированы Π² Π΄Π²ΡƒΡ… Ρ€Π΅ΠΆΠΈΠΌΠ°Ρ…: 32 ΠΈ 64 Π±ΠΈΡ‚Π°. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, для Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ понимания ΡΡ‚Π°Ρ‚ΡŒΠΈ Π±ΡƒΠ΄Π΅Ρ‚ Π»ΡƒΡ‡ΡˆΠ΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ хотя Π±Ρ‹ ΠΏΡ€ΠΈΠ±Π»ΠΈΠ·ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Π»ΠΈ язык Π‘ΠΈ. ВСстированиС ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΠ»ΠΎ Π½Π° процСссорС Core 2 Duo E8400 @3GHz Π½Π° 64-Ρ… Π±ΠΈΡ‚ΠΎΠ²ΠΎΠΉ Windows 7. Π˜Π·ΠΌΠ΅Ρ€Π΅Π½ΠΈΠ΅ чистого Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈΠ»ΠΎΡΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ runexe. ВсС исходныС ΠΊΠΎΠ΄Ρ‹ описываСмых Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² доступны Π² Π°Ρ€Ρ…ΠΈΠ²Π΅ Π½Π° ЯндСкс дискС, ΠΈΡ… компиляция ΠΏΡ€ΠΎΠ²Π΅Ρ€Π΅Π½Π° для компиляторов Visual C++, Intel C++, GCC ΠΈ CLang, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ Π² ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ΅, ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ Ρƒ вас Π±Ρ‹Ρ‚ΡŒ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ, Ссли ΠΊΡ‚ΠΎ-Ρ‚ΠΎ Π·Π°Ρ…ΠΎΡ‡Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ Ρƒ сСбя. ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ Linux, Π΄ΡƒΠΌΠ°ΡŽ, Π»ΡƒΡ‡ΡˆΠ΅ мСня Π·Π½Π°ΡŽΡ‚, ΠΊΠ°ΠΊ ΠΈΠΌ Ρ‚Π΅ΡΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ врСмя Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Ρƒ сСбя Π² систСмС, поэтому ΠΈΠΌ совСтов Π½Π΅ даю.

Π‘Ρ€Π΅Π΄ΠΈ Ρ‡ΠΈΡ‚Π°Ρ‚Π΅Π»Π΅ΠΉ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π±ΡƒΠ΄ΡƒΡ‚ Ρ‚Π°ΠΊΠΈΠ΅, ΠΊΠΎΠΌΡƒ ΠΏΡ€ΠΎΡ‰Π΅ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ всё Ρ‚ΠΎ ΠΆΠ΅ самоС Π½Π° Π²ΠΈΠ΄Π΅ΠΎ. Π― записал Ρ‚Π°ΠΊΠΎΠ΅ Π²ΠΈΠ΄Π΅ΠΎ (58 ΠΌΠΈΠ½ΡƒΡ‚), Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ ΠΏΡ€Π΅Π·Π΅Π½Ρ‚Π°Ρ†ΠΈΠΈ ΠΈΠ·Π»ΠΎΠΆΠ΅Π½ΠΎ Π² точности всё Ρ‚ΠΎ ΠΆΠ΅ самоС, Ρ‡Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Π½ΠΈΠΆΠ΅ ΠΏΠΎ тСксту, Π½ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π² Π΄Ρ€ΡƒΠ³ΠΎΠΌ стилС, Π±ΠΎΠ»Π΅Π΅ сухо ΠΈ строго, Ρ‚ΠΎΠ³Π΄Π° ΠΊΠ°ΠΊ тСкст я попытался Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠΆΠΈΠ²ΠΈΡ‚ΡŒ. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΈΠ·ΡƒΡ‡Π°ΠΉΡ‚Π΅ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π» Ρ‚Π°ΠΊ, ΠΊΠ°ΠΊ ΠΊΠΎΠΌΡƒ ΡƒΠ΄ΠΎΠ±Π½Π΅Π΅.

БСйчас Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ описаны Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹, ΠΏΠΎΡ€ΠΎΠΆΠ΄Π°Π΅ΠΌΡ‹Π΅ Ρ‚Π΅ΠΌ ΠΈΠ»ΠΈ ΠΈΠ½Ρ‹ΠΌ Π½Π°Π±ΠΎΡ€ΠΎΠΌ алхимичСских ΠΏΡ€ΠΈΡ‘ΠΌΠΎΠ², Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ Ρ€Π°Π·Π΄Π΅Π»Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Ρ‚Π°Π±Π»ΠΈΡ†Π° сравнСния Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ для ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Ρ€Π°Π·Π½ΠΎΠ³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Π°, Π° Π² ΠΊΠΎΠ½Ρ†Π΅ Π±ΡƒΠ΄Π΅Ρ‚ сводная Ρ‚Π°Π±Π»ΠΈΡ†Π° ΠΏΠΎ всСм Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°ΠΌ. Π’ΠΎ всСх Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°Ρ… ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ псСвдонимы для чисСл Π±Π΅Π· Π·Π½Π°ΠΊΠ° ΠΎΡ‚ 8 Π΄ΠΎ 64 Π±ΠΈΡ‚.

Наивный ΠΏΠΎΠ΄Ρ…ΠΎΠ΄

ΠžΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎ битовая алхимия примСняСтся вовсС Π½Π΅ для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π±Π»ΠΈΡΡ‚Π°Ρ‚ΡŒ Π½Π° собСсСдовании, Π° с Ρ†Π΅Π»ΡŒΡŽ сущСствСнного ускорСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. УскорСния ΠΏΠΎ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡŽ ΠΊ Ρ‡Π΅ΠΌΡƒ? По ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡŽ ΠΊ Ρ‚Ρ€ΠΈΠ²ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΌ ΠΏΡ€ΠΈΡ‘ΠΌΠ°ΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€ΠΈΠΉΡ‚ΠΈ Π² Π³ΠΎΠ»ΠΎΠ²Ρƒ, ΠΊΠΎΠ³Π΄Π° Π½Π΅Ρ‚ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π±ΠΎΠ»Π΅Π΅ Π΄Π΅Ρ‚Π°Π»ΡŒΠ½ΠΎ Π²Π½ΠΈΠΊΠ½ΡƒΡ‚ΡŒ Π² Π·Π°Π΄Π°Ρ‡Ρƒ. Π’Π°ΠΊΠΎΠ²Ρ‹ΠΌ ΠΏΡ€ΠΈΡ‘ΠΌΠΎΠΌ ΠΈ являСтся Π½Π°ΠΈΠ²Π½Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΊ подсчёту Π±ΠΈΡ‚ΠΎΠ²: ΠΌΡ‹ просто «откусываСм» ΠΎΡ‚ числа ΠΎΠ΄ΠΈΠ½ Π±ΠΈΡ‚ Π·Π° Π΄Ρ€ΡƒΠ³ΠΈΠΌ ΠΈ суммируСм ΠΈΡ…, повторяя ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρƒ Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° число Π½Π΅ станСт Ρ€Π°Π²Π½Ρ‹ΠΌ Π½ΡƒΠ»ΡŽ.

Π― Π½Π΅ Π²ΠΈΠΆΡƒ смысла Ρ‡Ρ‚ΠΎ-Π»ΠΈΠ±ΠΎ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π² этом Ρ‚Ρ€ΠΈΠ²ΠΈΠ°Π»ΡŒΠ½ΠΎΠΌ Ρ†ΠΈΠΊΠ»Π΅. НСвооруТённым взглядом ясно, Ρ‡Ρ‚ΠΎ Ссли ΡΡ‚Π°Ρ€ΡˆΠΈΠΉ Π±ΠΈΡ‚ числа n Ρ€Π°Π²Π΅Π½ 1, Ρ‚ΠΎ Ρ†ΠΈΠΊΠ» Π²Ρ‹Π½ΡƒΠΆΠ΄Π΅Π½ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΠΉΡ‚ΠΈΡΡŒ ΠΏΠΎ всСм Π±ΠΈΡ‚Π°ΠΌ числа, ΠΏΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ добСрётся Π΄ΠΎ ΡΡ‚Π°Ρ€ΡˆΠ΅Π³ΠΎ.

МСняя Ρ‚ΠΈΠΏ Π²Ρ…ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° u8 Π½Π° u16, u32 ΠΈ u64 ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ 4 Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. Π”Π°Π²Π°ΠΉΡ‚Π΅ протСстируСм ΠΊΠ°ΠΆΠ΄ΡƒΡŽ ΠΈΠ· Π½ΠΈΡ… Π½Π° ΠΏΠΎΡ‚ΠΎΠΊΠ΅ ΠΈΠ· 2 32 чисСл, ΠΏΠΎΠ΄Π°Π²Π°Π΅ΠΌΡ‹Ρ… Π² Ρ…Π°ΠΎΡ‚ΠΈΡ‡Π½ΠΎΠΌ порядкС. ΠŸΠΎΠ½ΡΡ‚Π½ΠΎ, Ρ‡Ρ‚ΠΎ для u8 Ρƒ нас 256 Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Π²Ρ…ΠΎΠ΄Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…, Π½ΠΎ для Сдинообразия ΠΌΡ‹ всё Ρ€Π°Π²Π½ΠΎ прогоняСм 2 32 случайных чисСл для всСх этих ΠΈ всСх ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, ΠΏΡ€ΠΈΡ‡Ρ‘ΠΌ всСгда Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΈ Ρ‚ΠΎΠΌ ΠΆΠ΅ порядкС (Π·Π° подробностями ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΊ ΠΊΠΎΠ΄Ρƒ ΡƒΡ‡Π΅Π±Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈΠ· Π°Ρ€Ρ…ΠΈΠ²Π°).

ВрСмя Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ Π½ΠΈΠΆΠ΅ ΡƒΠΊΠ°Π·Π°Π½ΠΎ Π² сСкундах. Для тСстирования ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π·Π°ΠΏΡƒΡΠΊΠ°Π»Π°ΡΡŒ Ρ‚Ρ€ΠΈΠΆΠ΄Ρ‹ ΠΈ Π²Ρ‹Π±ΠΈΡ€Π°Π»ΠΎΡΡŒ срСднСС врСмя. ΠŸΠΎΠ³Ρ€Π΅ΡˆΠ½ΠΎΡΡ‚ΡŒ Π΅Π΄Π²Π° Π»ΠΈ ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ°Π΅Ρ‚ 0,1 сСкунды. ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ столбСц ΠΎΡ‚Ρ€Π°ΠΆΠ°Π΅Ρ‚ Ρ€Π΅ΠΆΠΈΠΌ компилятора (32-Ρ… Π±ΠΈΡ‚ΠΎΠ²Ρ‹ΠΉ исходный ΠΊΠΎΠ΄ ΠΈΠ»ΠΈ 64-Ρ… Π±ΠΈΡ‚ΠΎΠ²Ρ‹ΠΉ), Π΄Π°Π»Π΅Π΅ 4 столбца ΠΎΡ‚Π²Π΅Ρ‡Π°ΡŽΡ‚ Π·Π° 4 Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π° Π²Ρ…ΠΎΠ΄Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ….

Π Π΅ΠΆΠΈΠΌu8u16u32u64
x8638,1872,00130,49384,76
x6437,7271,51131,47227,46

Как ΠΌΡ‹ Π²ΠΈΠ΄ΠΈΠΌ, ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π²ΠΏΠΎΠ»Π½Π΅ Π·Π°ΠΊΠΎΠ½ΠΎΠΌΠ΅Ρ€Π½ΠΎ возрастаСт с ростом Ρ€Π°Π·ΠΌΠ΅Ρ€Π° Π²Ρ…ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°. НСмного выбиваСтся ΠΈΠ· ΠΎΠ±Ρ‰Π΅ΠΉ закономСрности Π²Π°Ρ€ΠΈΠ°Π½Ρ‚, ΠΊΠΎΠ³Π΄Π° числа ΠΈΠΌΠ΅ΡŽΡ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€ 64 Π±ΠΈΡ‚Π°, Π° подсчёт ΠΈΠ΄Ρ‘Ρ‚ Ρ€Π΅ΠΆΠΈΠΌΠ΅ x86. ЯсноС Π΄Π΅Π»ΠΎ, Ρ‡Ρ‚ΠΎ процСссор Π²Ρ‹Π½ΡƒΠΆΠ΄Π΅Π½ Π΄Π΅Π»Π°Ρ‚ΡŒ Ρ‡Π΅Ρ‚Ρ‹Ρ€Ρ‘Ρ…ΠΊΡ€Π°Ρ‚Π½ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΏΡ€ΠΈ ΡƒΠ΄Π²ΠΎΠ΅Π½ΠΈΠΈ Π²Ρ…ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° ΠΈ Π΄Π°ΠΆΠ΅ Ρ…ΠΎΡ€ΠΎΡˆΠΎ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ справляСтся всСго лишь Π²Ρ‚Ρ€ΠΎΠ΅ ΠΌΠ΅Π΄Π»Π΅Π½Π½Π΅Π΅.

ΠŸΠ΅Ρ€Π²Π°Ρ польза этого ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π° Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ Π΅Π³ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ ΠΎΡˆΠΈΠ±ΠΈΡ‚ΡŒΡΡ, поэтому написанная Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΌΠΎΠΆΠ΅Ρ‚ ΡΡ‚Π°Ρ‚ΡŒ эталонной для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Π±ΠΎΠ»Π΅Π΅ слоТных Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² (ΠΈΠΌΠ΅Π½Π½ΠΎ Ρ‚Π°ΠΊ ΠΈ Π±Ρ‹Π»ΠΎ сдСлано Π² ΠΌΠΎΡ‘ΠΌ случаС). Вторая польза Π² ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΈ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ простой пСрСносимости Π½Π° числа любого Ρ€Π°Π·ΠΌΠ΅Ρ€Π°.

Π’Ρ€ΡŽΠΊ с «откусываниСм» ΠΌΠ»Π°Π΄ΡˆΠΈΡ… Π΅Π΄ΠΈΠ½ΠΈΡ‡Π½Ρ‹Ρ… Π±ΠΈΡ‚ΠΎΠ²

Π­Ρ‚ΠΎΡ‚ алхимичСский ΠΏΡ€ΠΈΡ‘ΠΌ основан Π½Π° ΠΈΠ΄Π΅Π΅ обнулСния младшСго Π΅Π΄ΠΈΠ½ΠΈΡ‡Π½ΠΎΠ³ΠΎ Π±ΠΈΡ‚Π°. ИмСя число n, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ произнСсти Π·Π°ΠΊΠ»ΠΈΠ½Π°Π½ΠΈΠ΅ n=n&(n-1), забирая Ρƒ числа n Π΅Π³ΠΎ ΠΌΠ»Π°Π΄ΡˆΡƒΡŽ Π΅Π΄ΠΈΠ½ΠΈΡ‡ΠΊΡƒ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° Π½ΠΈΠΆΠ΅ для n=232 прояснит ΡΠΈΡ‚ΡƒΠ°Ρ†ΠΈΡŽ для людСй, Π²ΠΏΠ΅Ρ€Π²Ρ‹Π΅ ΡƒΠ·Π½Π°Π²ΡˆΠΈΡ… ΠΎΠ± этом Ρ‚Ρ€ΡŽΠΊΠ΅.

8 Π±ΠΈΡ‚Ρ‚Π΅Π½ Ρ‚Ρ€Π°Ρ‚Ρ‹Π½ ΠΊΠΎΠ΄. image loader. 8 Π±ΠΈΡ‚Ρ‚Π΅Π½ Ρ‚Ρ€Π°Ρ‚Ρ‹Π½ ΠΊΠΎΠ΄ Ρ„ΠΎΡ‚ΠΎ. 8 Π±ΠΈΡ‚Ρ‚Π΅Π½ Ρ‚Ρ€Π°Ρ‚Ρ‹Π½ ΠΊΠΎΠ΄-image loader. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° 8 Π±ΠΈΡ‚Ρ‚Π΅Π½ Ρ‚Ρ€Π°Ρ‚Ρ‹Π½ ΠΊΠΎΠ΄. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° image loader. Для ΠΏΠΎΠ»Π½ΠΎΡ‚Ρ‹ понимания Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Ρ‡Π΅Ρ‚ΠΊΠΎ Π·Π½Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π±ΠΈΡ‚ ΠΈ Π±Π°ΠΉΡ‚, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΡƒΠΌΠ΅Ρ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ систСмы счислСния.

Код ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π΅ сильно измСнился.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Ρ†ΠΈΠΊΠ» выполнится Ρ€ΠΎΠ²Π½ΠΎ ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ€Π°Π·, сколько Π΅Π΄ΠΈΠ½ΠΈΡ† Π² числС n. Π­Ρ‚ΠΎ Π½Π΅ избавляСт ΠΎΡ‚ Ρ…ΡƒΠ΄ΡˆΠ΅Π³ΠΎ случая, ΠΊΠΎΠ³Π΄Π° всС Π±ΠΈΡ‚Ρ‹ Π² числС Π΅Π΄ΠΈΠ½ΠΈΡ‡Π½Ρ‹Π΅, Π½ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ сокращаСт срСднСС число ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΉ. Бильно Π»ΠΈ Π΄Π°Π½Π½Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΎΠ±Π»Π΅Π³Ρ‡ΠΈΡ‚ страдания процСссора? На самом Π΄Π΅Π»Π΅ Π½Π΅ ΠΎΡ‡Π΅Π½ΡŒ, Π° для 8 Π±ΠΈΡ‚ Π±ΡƒΠ΄Π΅Ρ‚ Π΄Π°ΠΆΠ΅ Ρ…ΡƒΠΆΠ΅. Напомню, Ρ‡Ρ‚ΠΎ сводная Ρ‚Π°Π±Π»ΠΈΡ†Π° Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² Π±ΡƒΠ΄Π΅Ρ‚ Π² ΠΊΠΎΠ½Ρ†Π΅, Π° здСсь Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ Ρ€Π°Π·Π΄Π΅Π»Π΅ Π±ΡƒΠ΄Π΅Ρ‚ своя Ρ‚Π°Π±Π»ΠΈΡ†Π°.

Π Π΅ΠΆΠΈΠΌu8u16u32u64
x8644,7355,8872,02300,78
x6440,9669,1679,13126,72

ΠŸΡ€Π΅Π΄ΠΏΠΎΠ΄ΡΡ‡Ρ‘Ρ‚

НС Π±ΡƒΠ΄Π΅ΠΌ Ρ‚ΠΎΡ€ΠΎΠΏΠΈΡ‚ΡŒΡΡ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΊ «Тёстким» заклинаниям, рассмотрим послСдний простой ΠΏΡ€ΠΈΡ‘ΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ спасти Π΄Π°ΠΆΠ΅ самого Π½Π΅ΠΎΠΏΡ‹Ρ‚Π½ΠΎΠ³ΠΎ ΠΌΠ°Π³Π°. Π”Π°Π½Π½Ρ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π·Π°Π΄Π°Ρ‡ΠΈ Π½Π΅ относится Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ ΠΊ Π±ΠΈΡ‚ΠΎΠ²ΠΎΠΉ Π°Π»Ρ…ΠΈΠΌΠΈΠΈ, ΠΎΠ΄Π½Π°ΠΊΠΎ для ΠΏΠΎΠ»Π½ΠΎΡ‚Ρ‹ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½Ρ‹ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ рассмотрСн Π² ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΌ порядкС. Π—Π°Π²Π΅Π΄Ρ‘ΠΌ Π΄Π²Π΅ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π½Π° 256 ΠΈ 65536 Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π·Π°Ρ€Π°Π½Π΅Π΅ посчитаны ΠΎΡ‚Π²Π΅Ρ‚Ρ‹ для всСх Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ… 1-Π±Π°ΠΉΡ‚ΠΎΠ²Ρ‹Ρ… ΠΈ 2-Π±Π°ΠΉΡ‚ΠΎΠ²Ρ‹Ρ… Π²Π΅Π»ΠΈΡ‡ΠΈΠ½ соотвСтствСнно.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° для 1 Π±Π°ΠΉΡ‚Π° Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ Ρ‚Π°ΠΊ

Π§Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°ΡΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ число Π±ΠΈΡ‚ Π² Π±ΠΎΠ»Π΅Π΅ ΠΊΡ€ΡƒΠΏΠ½Ρ‹Ρ… ΠΏΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Ρƒ числах, ΠΈΡ… Π½ΡƒΠΆΠ½ΠΎ Ρ€Π°Π·Π±ΠΈΡ‚ΡŒ Π½Π° Π±Π°ΠΉΡ‚Ρ‹. НапримСр, для u32 ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π²ΠΎΡ‚ Ρ‚Π°ΠΊΠΎΠΉ ΠΊΠΎΠ΄:

Или Ρ‚Π°ΠΊΠΎΠΉ, Ссли ΠΌΡ‹ примСняСм Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ прСдподсчёта для 2-Ρ… Π±Π°ΠΉΡ‚:

Ну Π° дальшС Π²Ρ‹ догадались, для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π° Ρ€Π°Π·ΠΌΠ΅Ρ€Π° Π²Ρ…ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° n (ΠΊΡ€ΠΎΠΌΠ΅ 8 Π±ΠΈΡ‚) ΠΌΠΎΠΆΠ΅Ρ‚ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π²Π° Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π° прСдподсчёта, Π² зависимости ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΈΠ· Π΄Π²ΡƒΡ… Ρ‚Π°Π±Π»ΠΈΡ† ΠΌΡ‹ примСняСм. Π”ΡƒΠΌΠ°ΡŽ, Ρ‡ΠΈΡ‚Π°Ρ‚Π΅Π»ΡŽ понятно, ΠΏΠΎΡ‡Π΅ΠΌΡƒ ΠΌΡ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ просто Ρ‚Π°ΠΊ Π²Π·ΡΡ‚ΡŒ ΠΈ завСсти Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ BitsSetTableFFFFFFFF, ΠΎΠ΄Π½Π°ΠΊΠΎ Π²ΠΏΠΎΠ»Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Π·Π°Π΄Π°Ρ‡ΠΈ, Π³Π΄Π΅ ΠΈ это Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡ€Π°Π²Π΄Π°Π½Π½Ρ‹ΠΌ.

Быстро Π»ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ прСдподсчёт? Всё сильно зависит ΠΎΡ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€Π°, смотритС Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π½ΠΈΠΆΠ΅. ΠŸΠ΅Ρ€Π²Π°Ρ для ΠΎΠ΄Π½ΠΎΠ±Π°ΠΉΡ‚ΠΎΠ²ΠΎΠ³ΠΎ прСдподсчёта, Π° вторая для Π΄Π²ΡƒΡ…Π±Π°ΠΉΡ‚ΠΎΠ²ΠΎΠ³ΠΎ.

Π Π΅ΠΆΠΈΠΌu8u16u32u64
x860,011,8321,0736,25
x640,011,4424,7926,84

Π˜Π½Ρ‚Π΅Ρ€Π΅ΡΠ½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚: для Ρ€Π΅ΠΆΠΈΠΌΠ° x64 прСдподсчёт для u64 Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π·Π°ΠΌΠ΅Ρ‚Π½ΠΎ быстрСС, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, это особСнности ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ, хотя ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ΅ Π½Π΅ проявляСтся Π²ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΌ случаС.

Π Π΅ΠΆΠΈΠΌu8u16u32u64
x860,057,9513,01
x640,078,4913,01

Π’Π°ΠΆΠ½ΠΎΠ΅ Π·Π°ΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: Π΄Π°Π½Π½Ρ‹ΠΉ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ с использованиСм прСдподсчёта оказываСтся Π²Ρ‹Π³ΠΎΠ΄Π½Ρ‹ΠΌ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ лишь ΠΏΡ€ΠΈ соблюдСнии ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… Π΄Π²ΡƒΡ… условий: (1) Ρƒ вас Π΅ΡΡ‚ΡŒ лишняя ΠΏΠ°ΠΌΡΡ‚ΡŒ, (2) Π²Π°ΠΌ трСбуСтся Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ расчёт числа Π΅Π΄ΠΈΠ½ΠΈΡ‡Π½Ρ‹Ρ… Π±ΠΈΡ‚ΠΎΠ² Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ большС Ρ€Π°Π·, Ρ‡Π΅ΠΌ Ρ€Π°Π·ΠΌΠ΅Ρ€ самой Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ имССтся Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Β«ΠΎΡ‚Ρ‹Π³Ρ€Π°Ρ‚ΡŒΒ» врСмя, ΠΏΠΎΡ‚Ρ€Π°Ρ‡Π΅Π½Π½ΠΎΠ΅ Π½Π° ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ ΠΊΠ°ΠΊΠΈΠΌ-Ρ‚ΠΎ ΠΈΠ· Π½Π΅Ρ…ΠΈΡ‚Ρ€Ρ‹Ρ… Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ². ΠŸΠΎΠΆΠ°Π»ΡƒΠΉ, ΠΌΠΎΠΆΠ½ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΠΌΠ΅Ρ‚ΡŒ Π² Π²ΠΈΠ΄Ρƒ экзотичСскоС условиС, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π½Π° ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅ всСгда Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΎ. Π’Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ ΠΊ памяти само ΠΏΠΎ сСбС быстроС ΠΈ Π½Π΅ замСдляСт Ρ€Π°Π±ΠΎΡ‚Ρƒ Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ систСмы. Π”Π΅Π»ΠΎ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ ΠΊ Ρ‚Π°Π±Π»ΠΈΡ†Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π±Ρ€ΠΎΡΠΈΡ‚ΡŒ ΠΈΠ· кэша Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΌ Π±Ρ‹Π»ΠΎ ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ ΠΈ Π·Π°ΠΌΠ΅Π΄Π»ΠΈΡ‚ΡŒ Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ Π΄Ρ€ΡƒΠ³ΠΎΠΉ участок ΠΊΠΎΠ΄Π°. Косяк это Π²Ρ‹ вряд Π»ΠΈ Π½Π°ΠΉΠ΄Ρ‘Ρ‚Π΅ быстро, ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Π΅ Ρ‡ΡƒΠ΄ΠΎΠ²ΠΈΡ‰Π½Ρ‹Π΅ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ Π΅Π΄Π²Π° Π»ΠΈ ΠΊΠΎΠΌΡƒ-Ρ‚ΠΎ понадобятся Π½Π° ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅ ΠΏΡ€ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ.

Π£ΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈ остаток ΠΎΡ‚ дСлСния

Π’ΠΎΠ·ΡŒΠΌΠ΅ΠΌ ΠΆΠ΅ Π½Π°ΠΊΠΎΠ½Π΅Ρ† Π±ΠΎΠ»Π΅Π΅ ΡΠΈΠ»ΡŒΠ½Ρ‹Π΅ зСлья с нашСй алхимичСской ΠΏΠΎΠ»ΠΊΠΈ. Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ умноТСния ΠΈ остатка ΠΎΡ‚ дСлСния Π½Π° ΡΡ‚Π΅ΠΏΠ΅Π½ΡŒ Π΄Π²ΠΎΠΉΠΊΠΈ Π±Π΅Π· Π΅Π΄ΠΈΠ½ΠΈΡ†Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ довольно интСрСсныС Π²Π΅Ρ‰ΠΈ. Начнём Ρ‚Π²ΠΎΡ€ΠΈΡ‚ΡŒ Π·Π°ΠΊΠ»ΠΈΠ½Π°Π½ΠΈΠ΅ с ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π±Π°ΠΉΡ‚Π°. Для удобства ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡ΠΈΠΌ всС Π±ΠΈΡ‚Ρ‹ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π±Π°ΠΉΡ‚Π° латинскими Π±ΡƒΠΊΠ²Π°ΠΌΠΈ ΠΎΡ‚ Β«aΒ» Π΄ΠΎ Β«hΒ». НашС число n ΠΏΡ€ΠΈΠΌΠ΅Ρ‚ Π²ΠΈΠ΄:

8 Π±ΠΈΡ‚Ρ‚Π΅Π½ Ρ‚Ρ€Π°Ρ‚Ρ‹Π½ ΠΊΠΎΠ΄. image loader. 8 Π±ΠΈΡ‚Ρ‚Π΅Π½ Ρ‚Ρ€Π°Ρ‚Ρ‹Π½ ΠΊΠΎΠ΄ Ρ„ΠΎΡ‚ΠΎ. 8 Π±ΠΈΡ‚Ρ‚Π΅Π½ Ρ‚Ρ€Π°Ρ‚Ρ‹Π½ ΠΊΠΎΠ΄-image loader. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° 8 Π±ΠΈΡ‚Ρ‚Π΅Π½ Ρ‚Ρ€Π°Ρ‚Ρ‹Π½ ΠΊΠΎΠ΄. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° image loader. Для ΠΏΠΎΠ»Π½ΠΎΡ‚Ρ‹ понимания Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Ρ‡Π΅Ρ‚ΠΊΠΎ Π·Π½Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π±ΠΈΡ‚ ΠΈ Π±Π°ΠΉΡ‚, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΡƒΠΌΠ΅Ρ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ систСмы счислСния.

8 Π±ΠΈΡ‚Ρ‚Π΅Π½ Ρ‚Ρ€Π°Ρ‚Ρ‹Π½ ΠΊΠΎΠ΄. image loader. 8 Π±ΠΈΡ‚Ρ‚Π΅Π½ Ρ‚Ρ€Π°Ρ‚Ρ‹Π½ ΠΊΠΎΠ΄ Ρ„ΠΎΡ‚ΠΎ. 8 Π±ΠΈΡ‚Ρ‚Π΅Π½ Ρ‚Ρ€Π°Ρ‚Ρ‹Π½ ΠΊΠΎΠ΄-image loader. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° 8 Π±ΠΈΡ‚Ρ‚Π΅Π½ Ρ‚Ρ€Π°Ρ‚Ρ‹Π½ ΠΊΠΎΠ΄. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° image loader. Для ΠΏΠΎΠ»Π½ΠΎΡ‚Ρ‹ понимания Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Ρ‡Π΅Ρ‚ΠΊΠΎ Π·Π½Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π±ΠΈΡ‚ ΠΈ Π±Π°ΠΉΡ‚, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΡƒΠΌΠ΅Ρ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ систСмы счислСния.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Ρ€Π°Π·ΠΎΠ±ΡŒΡ‘ΠΌ мыслСнно наши 24 Π±ΠΈΡ‚Π° Π½Π° 8 Π±Π»ΠΎΠΊΠΎΠ² ΠΏΠΎ 3 Π±ΠΈΡ‚Π° Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ (см. Π½ΠΈΠΆΠ΅ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ, ΠΏΠ΅Ρ€Π²ΡƒΡŽ строку Ρ‚Π°Π±Π»ΠΈΡ‡ΠΊΠΈ). Π—Π°Ρ‚Π΅ΠΌ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΠΎΠ±ΠΈΡ‚ΠΎΠ²ΠΎΠ³ΠΎ Β«ΠΈΒ» с маской 0x249249 (вторая строка Ρ‚Π°Π±Π»ΠΈΡ‡ΠΊΠΈ) ΠΎΠ±Π½ΡƒΠ»ΠΈΠΌ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ Π±Π»ΠΎΠΊΠ΅ Π΄Π²Π° ΡΡ‚Π°Ρ€ΡˆΠΈΡ… Π±ΠΈΡ‚Π°.

8 Π±ΠΈΡ‚Ρ‚Π΅Π½ Ρ‚Ρ€Π°Ρ‚Ρ‹Π½ ΠΊΠΎΠ΄. image loader. 8 Π±ΠΈΡ‚Ρ‚Π΅Π½ Ρ‚Ρ€Π°Ρ‚Ρ‹Π½ ΠΊΠΎΠ΄ Ρ„ΠΎΡ‚ΠΎ. 8 Π±ΠΈΡ‚Ρ‚Π΅Π½ Ρ‚Ρ€Π°Ρ‚Ρ‹Π½ ΠΊΠΎΠ΄-image loader. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° 8 Π±ΠΈΡ‚Ρ‚Π΅Π½ Ρ‚Ρ€Π°Ρ‚Ρ‹Π½ ΠΊΠΎΠ΄. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° image loader. Для ΠΏΠΎΠ»Π½ΠΎΡ‚Ρ‹ понимания Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Ρ‡Π΅Ρ‚ΠΊΠΎ Π·Π½Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π±ΠΈΡ‚ ΠΈ Π±Π°ΠΉΡ‚, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΡƒΠΌΠ΅Ρ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ систСмы счислСния.

Π’Ρ€Π΅Ρ‚ΡŒΡ строка Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ поясняСт ΡˆΠ΅ΡΡ‚Π½Π°Π΄Ρ†Π°Ρ‚Π΅Ρ€ΠΈΡ‡Π½ΡƒΡŽ запись маски. Π’ послСднСй строкС ΠΏΠΎΠΊΠ°Π·Π°Π½ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΌΡ‹ добивались: всС Π±ΠΈΡ‚Ρ‹ исходного Π±Π°ΠΉΡ‚Π° ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒΡΡ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Π² своём Ρ‚Ρ€Ρ‘Ρ…Π±ΠΈΡ‚ΠΎΠ²ΠΎΠΌ Π±Π»ΠΎΠΊΠ΅, Π½ΠΎ Π² ΠΈΠ½ΠΎΠΌ порядкС (порядок Π½Π°ΠΌ ΠΈ Π½Π΅ Π²Π°ΠΆΠ΅Π½).

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡΠ»ΠΎΠΆΠΈΡ‚ΡŒ эти 8 Π±Π»ΠΎΠΊΠΎΠ² – ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ сумму Π½Π°ΡˆΠΈΡ… Π±ΠΈΡ‚!

Π’ случаС ΠΊΠΎΠ³Π΄Π° n ΠΈΠΌΠ΅Π΅Ρ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€ 16 Π±ΠΈΡ‚ ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°Π·Π±ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Π½Π° Π΄Π²Π΅ части ΠΏΠΎ 8 Π±ΠΈΡ‚. НапримСр, Ρ‚Π°ΠΊ:

8 Π±ΠΈΡ‚Ρ‚Π΅Π½ Ρ‚Ρ€Π°Ρ‚Ρ‹Π½ ΠΊΠΎΠ΄. image loader. 8 Π±ΠΈΡ‚Ρ‚Π΅Π½ Ρ‚Ρ€Π°Ρ‚Ρ‹Π½ ΠΊΠΎΠ΄ Ρ„ΠΎΡ‚ΠΎ. 8 Π±ΠΈΡ‚Ρ‚Π΅Π½ Ρ‚Ρ€Π°Ρ‚Ρ‹Π½ ΠΊΠΎΠ΄-image loader. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° 8 Π±ΠΈΡ‚Ρ‚Π΅Π½ Ρ‚Ρ€Π°Ρ‚Ρ‹Π½ ΠΊΠΎΠ΄. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° image loader. Для ΠΏΠΎΠ»Π½ΠΎΡ‚Ρ‹ понимания Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Ρ‡Π΅Ρ‚ΠΊΠΎ Π·Π½Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π±ΠΈΡ‚ ΠΈ Π±Π°ΠΉΡ‚, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΡƒΠΌΠ΅Ρ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ систСмы счислСния.

Π”Π΅Π»ΠΎ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π½Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ всС Π±ΠΈΡ‚Ρ‹ исходного числа заняли ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹Π΅ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ Π² своих 4-Π±ΠΈΡ‚ΠΎΠ²Ρ‹Ρ… Π±Π»ΠΎΠΊΠ°Ρ… (ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° Π²Ρ‹ΡˆΠ΅), Π° коль скоро 8 ΠΈ 4 Π½Π΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π²Π·Π°ΠΈΠΌΠ½ΠΎ простыми числами, ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠ΅ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ 8 Π±ΠΈΡ‚ΠΎΠ² 4 Ρ€Π°Π·Π° Π½Π΅ даст ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ³ΠΎ располоТСния Π½ΡƒΠΆΠ½Ρ‹Ρ… Π±ΠΈΡ‚ΠΎΠ². Нам придётся Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊ Π½Π°ΡˆΠ΅ΠΌΡƒ Π±Π°ΠΉΡ‚Ρƒ ΠΎΠ΄ΠΈΠ½ Π½ΠΎΠ»ΠΈΠΊ, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Ρ‚ΠΈΡ€Π°ΠΆΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ 9 Π±ΠΈΡ‚ΠΎΠ², Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ 9 Π²Π·Π°ΠΈΠΌΠ½ΠΎ просто с 4. Π’Π°ΠΊ ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ число, ΠΈΠΌΠ΅ΡŽΡ‰Π΅Π΅ Ρ€Π°Π·ΠΌΠ΅Ρ€ 36 Π±ΠΈΡ‚, Π½ΠΎ Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ всС Π±ΠΈΡ‚Ρ‹ исходного Π±Π°ΠΉΡ‚Π° стоят Π½Π° ΠΌΠ»Π°Π΄ΡˆΠΈΡ… позициях 4-Π±ΠΈΡ‚ΠΎΠ²Ρ‹Ρ… Π±Π»ΠΎΠΊΠΎΠ². ΠžΡΡ‚Π°Π»ΠΎΡΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Π·ΡΡ‚ΡŒ ΠΏΠΎΠ±ΠΈΡ‚ΠΎΠ²ΠΎΠ΅ Β«ΠΈΒ» с числом 0x111111111 (вторая строка Π½Π° ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ΅ Π²Ρ‹ΡˆΠ΅), Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±Π½ΡƒΠ»ΠΈΡ‚ΡŒ ΠΏΠΎ Ρ‚Ρ€ΠΈ ΡΡ‚Π°Ρ€ΡˆΠΈΡ… Π±ΠΈΡ‚Π° Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ Π±Π»ΠΎΠΊΠ΅. Π—Π°Ρ‚Π΅ΠΌ Π±Π»ΠΎΠΊΠΈ Π½ΡƒΠΆΠ½ΠΎ ΡΠ»ΠΎΠΆΠΈΡ‚ΡŒ.

ΠŸΡ€ΠΈ Ρ‚Π°ΠΊΠΎΠΌ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° подсчёта Π΅Π΄ΠΈΠ½ΠΈΡ‡Π½Ρ‹Ρ… Π±ΠΈΡ‚ΠΎΠ² Π² Π±Π°ΠΉΡ‚Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€Π΅Π΄Π΅Π»ΡŒΠ½ΠΎ простой:

НСдостаток ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΎΡ‡Π΅Π²ΠΈΠ΄Π΅Π½: трСбуСтся Π²Ρ‹Ρ…ΠΎΠ΄ Π² 64-Π±ΠΈΡ‚ΠΎΠ²ΡƒΡŽ Π°Ρ€ΠΈΡ„ΠΌΠ΅Ρ‚ΠΈΠΊΡƒ со всСми Π²Ρ‹Ρ‚Π΅ΠΊΠ°ΡŽΡ‰ΠΈΠΌΠΈ ΠΎΡ‚ΡΡŽΠ΄Π° послСдствиями. МоТно Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π² Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ данная ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° задСйствуСт Ρ‚ΠΎΠ»ΡŒΠΊΠΎ 33 Π±ΠΈΡ‚Π° ΠΈΠ· 64-Ρ… (ΡΡ‚Π°Ρ€ΡˆΠΈΠ΅ 3 Π±ΠΈΡ‚Π° ΠΎΠ±Π½ΡƒΠ»ΡΡŽΡ‚ΡΡ), ΠΈ Π² ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ΡŒ, ΠΊΠ°ΠΊ пСрСнСсти Π΄Π°Π½Π½Ρ‹Π΅ вычислСния Π² 32-Ρ… Π±ΠΈΡ‚ΠΎΠ²ΡƒΡŽ Π°Ρ€ΠΈΡ„ΠΌΠ΅Ρ‚ΠΈΠΊΡƒ, Π½ΠΎ рассказы ΠΎ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… оптимизациях Π½Π΅ входят Π² Ρ‚Π΅ΠΌΡƒ этого руководства. Π”Π°Π²Π°ΠΉΡ‚Π΅ ΠΏΠΎΠΊΠ° просто ΠΈΠ·ΡƒΡ‡Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΡ‘ΠΌΡ‹, Π° ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡ… Π²Π°ΠΌ придётся самим ΡƒΠΆΠ΅ ΠΏΠΎΠ΄ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΡƒΡŽ Π·Π°Π΄Π°Ρ‡Ρƒ.

ΠžΡ‚Π²Π΅Ρ‚ΠΈΠΌ Π½Π° вопрос ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊΠΎΠ³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ пСрСмСнная n, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄Π°Π½Π½Ρ‹ΠΉ Ρ‚Ρ€ΡŽΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Π» для Π½Π΅Ρ‘. Коль скоро ΠΌΡ‹ Π±Π΅Ρ€Ρ‘ΠΌ остаток ΠΎΡ‚ дСлСния Π½Π° 15, такая пСрСмСнная Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ большС 14 Π±ΠΈΡ‚, Π² ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС придётся ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π²Π΅Ρ‚Π²Π»Π΅Π½ΠΈΠ΅, ΠΊΠ°ΠΊ ΠΌΡ‹ Π΄Π΅Π»Π°Π»ΠΈ это Ρ€Π°Π½ΡŒΡˆΠ΅. Но для 14 Π±ΠΈΡ‚ ΠΏΡ€ΠΈΡ‘ΠΌ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚, Ссли Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊ 14-Ρ‚ΠΈ Π±ΠΈΡ‚Π°ΠΌ ΠΎΠ΄ΠΈΠ½ Π½ΠΎΠ»ΠΈΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ всС Π±ΠΈΡ‚Ρ‹ встали Π½Π° свои ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ. Π’Π΅ΠΏΠ΅Ρ€ΡŒ я Π±ΡƒΠ΄Ρƒ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π² Ρ†Π΅Π»ΠΎΠΌ усвоили ΡΡƒΡ‚ΡŒ ΠΏΡ€ΠΈΡ‘ΠΌΠ° ΠΈ смоТСтС сами Π±Π΅Π· Ρ‚Ρ€ΡƒΠ΄Π° ΠΏΠΎΠ΄ΠΎΠ±Ρ€Π°Ρ‚ΡŒ ΠΌΠ½ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒ для тираТирования ΠΈ маску для обнулСния Π½Π΅Π½ΡƒΠΆΠ½Ρ‹Ρ… Π±ΠΈΡ‚ΠΎΠ². ΠŸΠΎΠΊΠ°ΠΆΡƒ сразу Π³ΠΎΡ‚ΠΎΠ²Ρ‹ΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚.

Π­Ρ‚Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π²Ρ‹ΡˆΠ΅ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, ΠΊΠ°ΠΊ ΠΌΠΎΠ³ Π±Ρ‹ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ ΠΊΠΎΠ΄, Π±ΡƒΠ΄ΡŒ Ρƒ вас пСрСмСнная Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ 14 Π±ΠΈΡ‚ Π±Π΅Π· Π·Π½Π°ΠΊΠ°. Π­Ρ‚ΠΎΡ‚ ΠΆΠ΅ ΠΊΠΎΠ΄ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π² 15 Π±ΠΈΡ‚, Π½ΠΎ ΠΏΡ€ΠΈ условии, Ρ‡Ρ‚ΠΎ максимум лишь 14 ΠΈΠ· Π½ΠΈΡ… Ρ€Π°Π²Π½Ρ‹Π΅ Π΅Π΄ΠΈΠ½ΠΈΡ†Π΅, Π»ΠΈΠ±ΠΎ Ссли случай, ΠΊΠΎΠ³Π΄Π° n=0x7FFF ΠΌΡ‹ Ρ€Π°Π·Π±Π΅Ρ€Ρ‘ΠΌ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ. Π­Ρ‚ΠΎ всё Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ для ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Ρ‚ΠΈΠΏΠ° u16. ИдСя Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ сначала Β«ΠΎΡ‚ΠΊΡƒΡΠΈΡ‚ΡŒΒ» младший Π±ΠΈΡ‚, ΠΏΠΎΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π±ΠΈΡ‚Ρ‹ Π² ΠΎΡΡ‚Π°Π²ΡˆΠ΅ΠΌΡΡ 15-Ρ‚ΠΈ Π±ΠΈΡ‚ΠΎΠ²ΠΎΠΌ числС, Π° Π·Π°Ρ‚Π΅ΠΌ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ ΠΏΡ€ΠΈΠ±Π°Π²ΠΈΡ‚ΡŒ Β«ΠΎΡ‚ΠΊΡƒΡˆΠ΅Π½Π½Ρ‹ΠΉΒ» Π±ΠΈΡ‚.

Π—Π΄Π΅ΡΡŒ Ρ‚ΠΎΡ‡Π½ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ вмСсто Ρ‚Ρ€Π΅Ρ… Π²Π΅Ρ‚Π²Π»Π΅Π½ΠΈΠΉ Π²Π·ΡΡ‚ΡŒ 3 остатка ΠΎΡ‚ дСлСния, Π½ΠΎ я Π²Ρ‹Π±Ρ€Π°Π» вСтвистый Π²Π°Ρ€ΠΈΠ°Π½Ρ‚, Π½Π° ΠΌΠΎΡ‘ΠΌ процСссорС ΠΎΠ½ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π»ΡƒΡ‡ΡˆΠ΅.

Для n Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ 64 Π±ΠΈΡ‚Π° ΠΌΠ½Π΅ Π½Π΅ ΡƒΠ΄Π°Π»ΠΎΡΡŒ ΠΏΡ€ΠΈΠ΄ΡƒΠΌΠ°Ρ‚ΡŒ подходящСго заклинания, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π±Ρ‹Π»ΠΎ Π±Ρ‹ Π½Π΅ Ρ‚Π°ΠΊ ΠΌΠ½ΠΎΠ³ΠΎ ΡƒΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈ слоТСний. ΠŸΠΎΠ»ΡƒΡ‡Π°Π»ΠΎΡΡŒ Π»ΠΈΠ±ΠΎ 6, Π»ΠΈΠ±ΠΎ 7, Π° это слишком ΠΌΠ½ΠΎΠ³ΠΎ для Ρ‚Π°ΠΊΠΎΠΉ Π·Π°Π΄Π°Ρ‡ΠΈ. Π”Ρ€ΡƒΠ³ΠΎΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ β€” Π²Ρ‹Ρ…ΠΎΠ΄ Π² 128-Π±ΠΈΡ‚ΠΎΠ²ΡƒΡŽ Π°Ρ€ΠΈΡ„ΠΌΠ΅Ρ‚ΠΈΠΊΡƒ, Π° это ΡƒΠΆΠ΅ Π½Π΅ ΠΏΠΎΠΉΠΌΠΈ ΠΊΠ°ΠΊΠΈΠΌ Β«ΠΎΡ‚ΠΊΠ°Ρ‚ΠΎΠΌΒ» для нас обСрнётся, Π½Π΅ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΌΠ°Π³Π° ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈ ΠΊ стСнкС ΠΎΡ‚ΡˆΠ²Ρ‹Ρ€Π½ΡƒΡ‚ΡŒ πŸ™‚

Π”Π°Π²Π°ΠΉΡ‚Π΅ Π»ΡƒΡ‡ΡˆΠ΅ посмотрим Π½Π° врСмя Ρ€Π°Π±ΠΎΡ‚Ρ‹.

Π Π΅ΠΆΠΈΠΌu8u16u32u64
x8639,7860,48146,78
x646,7812,2831,12

ΠžΡ‡Π΅Π²ΠΈΠ΄Π½Ρ‹ΠΌ Π²Ρ‹Π²ΠΎΠ΄ΠΎΠΌ ΠΈΠ· этой Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ 64-Ρ… битовая Π°Ρ€ΠΈΡ„ΠΌΠ΅Ρ‚ΠΈΠΊΠ° ΠΏΠ»ΠΎΡ…ΠΎ воспринимаСтся Π² 32-Ρ… Π±ΠΈΡ‚ΠΎΠ²ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅ исполнСния, хотя Π² Ρ†Π΅Π»ΠΎΠΌ-Ρ‚ΠΎ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ Π½Π΅ΠΏΠ»ΠΎΡ…. Если Π²ΡΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° прСдподсчёта Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ x64 для ΠΎΠ΄Π½ΠΎΠ±Π°ΠΉΡ‚ΠΎΠ²ΠΎΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ для случая u32 (24,79 с), Ρ‚ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ, Ρ‡Ρ‚ΠΎ Π΄Π°Π½Π½Ρ‹ΠΉ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ отстаёт всСго лишь Π½Π° 25%, Π° это ΠΏΠΎΠ²ΠΎΠ΄ ΠΊ ΡΠΎΡ€Π΅Π²Π½ΠΎΠ²Π°Π½ΠΈΡŽ, Π²ΠΎΠΏΠ»ΠΎΡ‰Ρ‘Π½Π½ΠΎΠΌΡƒ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ Ρ€Π°Π·Π΄Π΅Π»Π΅.

Π—Π°ΠΌΠ΅Π½Π° взятия остатка Π½Π° ΡƒΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈ сдвиг

НСдостаток ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ взятия остатка всСм ΠΎΡ‡Π΅Π²ΠΈΠ΄Π΅Π½. Π­Ρ‚ΠΎ Π΄Π΅Π»Π΅Π½ΠΈΠ΅, Π° Π΄Π΅Π»Π΅Π½ΠΈΠ΅ – это Π΄ΠΎΠ»Π³ΠΎ. РазумССтся, соврСмСнныС компиляторы Π·Π½Π°ΡŽΡ‚ Π°Π»Ρ…ΠΈΠΌΠΈΡŽ ΠΈ ΡƒΠΌΠ΅ΡŽΡ‚ Π·Π°ΠΌΠ΅Π½ΡΡ‚ΡŒ Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π½Π° ΡƒΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅ со сдвигом, Π° Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ остаток, Π½ΡƒΠΆΠ½ΠΎ Π²Ρ‹Ρ‡Π΅ΡΡ‚ΡŒ ΠΈΠ· Π΄Π΅Π»ΠΈΠΌΠΎΠ³ΠΎ частноС, ΡƒΠΌΠ½ΠΎΠΆΠ΅Π½Π½ΠΎΠ΅ Π½Π° Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, это всё Ρ€Π°Π²Π½ΠΎ Π΄ΠΎΠ»Π³ΠΎ! ΠžΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ΡΡ, Ρ‡Ρ‚ΠΎ Π² Π΄Ρ€Π΅Π²Π½ΠΈΡ… свитках Π·Π°ΠΊΠ»ΠΈΠ½Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΊΠΎΠ΄Π° сохранился ΠΎΠ΄ΠΈΠ½ интСрСсный способ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π³ΠΎ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°. ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡΡƒΠΌΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ k-Π±ΠΈΡ‚ΠΎΠ²Ρ‹Π΅ Π±Π»ΠΎΠΊΠΈ Π½Π΅ взятиСм остатка ΠΎΡ‚ дСлСния, Π° Π΅Ρ‰Ρ‘ ΠΎΠ΄Π½ΠΈΠΌ ΡƒΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ Π½Π° маску, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ обнуляли лишниС Π±ΠΈΡ‚Ρ‹ Π² Π±Π»ΠΎΠΊΠ°Ρ…. Π’ΠΎΡ‚ ΠΊΠ°ΠΊ это выглядит для n Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ Π² 1 Π±Π°ΠΉΡ‚.

Для Π½Π°Ρ‡Π°Π»Π° снова Ρ‚ΠΈΡ€Π°ΠΆΠΈΡ€ΡƒΠ΅ΠΌ Π±Π°ΠΉΡ‚ Ρ‚Ρ€ΠΈΠΆΠ΄Ρ‹ ΠΈ удаляСм ΠΏΠΎ Π΄Π²Π° ΡΡ‚Π°Ρ€ΡˆΠΈΡ… Π±ΠΈΡ‚Π° Ρƒ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ 3-Π±ΠΈΡ‚ΠΎΠ²ΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ° с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΡƒΠΆΠ΅ ΠΏΡ€ΠΎΠΉΠ΄Π΅Π½Π½ΠΎΠΉ Π²Ρ‹ΡˆΠ΅ Ρ„ΠΎΡ€ΠΌΡƒΠ»Ρ‹ 0x010101β‹…n & 0x249249.

8 Π±ΠΈΡ‚Ρ‚Π΅Π½ Ρ‚Ρ€Π°Ρ‚Ρ‹Π½ ΠΊΠΎΠ΄. image loader. 8 Π±ΠΈΡ‚Ρ‚Π΅Π½ Ρ‚Ρ€Π°Ρ‚Ρ‹Π½ ΠΊΠΎΠ΄ Ρ„ΠΎΡ‚ΠΎ. 8 Π±ΠΈΡ‚Ρ‚Π΅Π½ Ρ‚Ρ€Π°Ρ‚Ρ‹Π½ ΠΊΠΎΠ΄-image loader. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° 8 Π±ΠΈΡ‚Ρ‚Π΅Π½ Ρ‚Ρ€Π°Ρ‚Ρ‹Π½ ΠΊΠΎΠ΄. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° image loader. Для ΠΏΠΎΠ»Π½ΠΎΡ‚Ρ‹ понимания Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Ρ‡Π΅Ρ‚ΠΊΠΎ Π·Π½Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π±ΠΈΡ‚ ΠΈ Π±Π°ΠΉΡ‚, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΡƒΠΌΠ΅Ρ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ систСмы счислСния.

ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ‚Ρ€Ρ‘Ρ…Π±ΠΈΡ‚ΠΎΠ²Ρ‹ΠΉ Π±Π»ΠΎΠΊ я для удобства ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡ΠΈΠ» Π·Π°Π³Π»Π°Π²Π½ΠΎΠΉ латинской Π±ΡƒΠΊΠ²ΠΎΠΉ. Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΡƒΠΌΠ½ΠΎΠΆΠ°Π΅ΠΌ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹ΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π½Π° Ρ‚Ρƒ ΠΆΠ΅ ΡΠ°ΠΌΡƒΡŽ маску 0x249249. Маска содСрТит Π΅Π΄ΠΈΠ½ΠΈΡ‡Π½Ρ‹ΠΉ Π±ΠΈΡ‚ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΉ 3-ΠΉ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ, поэтому Ρ‚Π°ΠΊΠΎΠ΅ ΡƒΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅ эквивалСнтно слоТСнию числа самого с собой 8 Ρ€Π°Π·, ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π· со сдвигом Π½Π° 3 Π±ΠΈΡ‚Π°:

8 Π±ΠΈΡ‚Ρ‚Π΅Π½ Ρ‚Ρ€Π°Ρ‚Ρ‹Π½ ΠΊΠΎΠ΄. image loader. 8 Π±ΠΈΡ‚Ρ‚Π΅Π½ Ρ‚Ρ€Π°Ρ‚Ρ‹Π½ ΠΊΠΎΠ΄ Ρ„ΠΎΡ‚ΠΎ. 8 Π±ΠΈΡ‚Ρ‚Π΅Π½ Ρ‚Ρ€Π°Ρ‚Ρ‹Π½ ΠΊΠΎΠ΄-image loader. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° 8 Π±ΠΈΡ‚Ρ‚Π΅Π½ Ρ‚Ρ€Π°Ρ‚Ρ‹Π½ ΠΊΠΎΠ΄. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° image loader. Для ΠΏΠΎΠ»Π½ΠΎΡ‚Ρ‹ понимания Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Ρ‡Π΅Ρ‚ΠΊΠΎ Π·Π½Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π±ΠΈΡ‚ ΠΈ Π±Π°ΠΉΡ‚, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΡƒΠΌΠ΅Ρ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ систСмы счислСния.

Π§Ρ‚ΠΎ ΠΌΡ‹ Π²ΠΈΠ΄ΠΈΠΌ? Π‘ΠΈΡ‚Ρ‹ с 21 ΠΏΠΎ 23 ΠΈ Π΄Π°ΡŽΡ‚ Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΡƒΡŽ сумму! ΠŸΡ€ΠΈ этом пСрСполнСния Π² ΠΊΠ°ΠΊΠΎΠΌ-Π»ΠΈΠ±ΠΎ ΠΈΠ· Π±Π»ΠΎΠΊΠΎΠ² справа Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Ρ‚Π°ΠΌ Π½ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ Π±Π»ΠΎΠΊΠ΅ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ числа, большСго 7. ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ° лишь Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Ссли наша сумма Ρ€Π°Π²Π½Π° 8, ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ 0, Π½ΠΎ это Π½Π΅ ΡΡ‚Ρ€Π°ΡˆΠ½ΠΎ, вСдь этот СдинствСнный случай ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°ΡΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ.

По сути, ΠΌΡ‹ взяли ΠΊΠΎΠ΄ ΠΈΠ· ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π³ΠΎ Ρ€Π°Π·Π΄Π΅Π»Π° ΠΈ Π·Π°ΠΌΠ΅Π½ΠΈΠ»ΠΈ Π² Π½Ρ‘ΠΌ взятиС остатка ΠΎΡ‚ дСлСния Π½Π° 7 Π½Π° ΡƒΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅, сдвиг ΠΈ ΠΏΠΎΠ±ΠΈΡ‚ΠΎΠ²ΠΎΠ΅ «И» Π² ΠΊΠΎΠ½Ρ†Π΅. ΠŸΡ€ΠΈ этом вмСсто 3-Ρ… Π²Π΅Ρ‚Π²Π»Π΅Π½ΠΈΠΉ ΠΎΡΡ‚Π°Π»ΠΎΡΡŒ лишь ΠΎΠ΄Π½ΠΎ.

Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ для 16 Π±ΠΈΡ‚, Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π²Π·ΡΡ‚ΡŒ ΠΊΠΎΠ΄ ΠΈΠ· ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π³ΠΎ Ρ€Π°Π·Π΄Π΅Π»Π°, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ ΠΊΠ°ΠΊ это дСлаСтся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ взятия остатка ΠΎΡ‚ дСлСния Π½Π° 15 ΠΈ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π΄Π°Π½Π½ΡƒΡŽ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρƒ ΡƒΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ. ΠŸΡ€ΠΈ этом Π½Π΅Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ Ρ‚ΠΎ, ΠΊΠ°ΠΊΠΈΠ΅ условия ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ±Ρ€Π°Ρ‚ΡŒ ΠΈΠ· ΠΊΠΎΠ΄Π°.

Для 32-Ρ… Π±ΠΈΡ‚ ΠΌΡ‹ Π΄Π΅Π»Π°Π΅ΠΌ Ρ‚ΠΎ ΠΆΠ΅ самоС: Π±Π΅Ρ€Ρ‘ΠΌ ΠΊΠΎΠ΄ ΠΈΠ· ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π³ΠΎ Ρ€Π°Π·Π΄Π΅Π»Π° ΠΈ, порисовав Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π½Π° Π±ΡƒΠΌΠ°Π³Π΅, сообраТаСм, ΠΊΠ°ΠΊΠΈΠΌ Π±ΡƒΠ΄Π΅Ρ‚ сдвиг, Ссли Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ остаток Π½Π° ΡƒΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅.

Для 64-Ρ… Π±ΠΈΡ‚ я Ρ‚ΠΎΠΆΠ΅ Π½Π΅ смог ΠΏΡ€ΠΈΠ΄ΡƒΠΌΠ°Ρ‚ΡŒ Ρ‡Π΅Π³ΠΎ-Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ заставляло Π±Ρ‹ ΠΌΠΎΠΉ процСссор Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Ρ€ΠΎΠ»ΡŒ ΠΏΠ΅Ρ‡ΠΊΠΈ.

Π Π΅ΠΆΠΈΠΌu8u16u32u64
x8612,6642,3799,90
x643,544,5118,35

ΠŸΡ€ΠΈΡΡ‚Π½ΠΎ ΡƒΠ΄ΠΈΠ²ΠΈΠ»ΠΈ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ для Ρ€Π΅ΠΆΠΈΠΌΠ° x64. Как ΠΈ оТидалось, ΠΌΡ‹ ΠΎΠ±ΠΎΠ³Π½Π°Π»ΠΈ прСдподсчёт с ΠΎΠ΄Π½ΠΎΠ±Π°ΠΉΡ‚ΠΎΠ²ΠΎΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Π΅ΠΉ для случая u32. МоТно Π»ΠΈ Π²ΠΎΠΎΠ±Ρ‰Π΅ ΠΎΠ±ΠΎΠ³Π½Π°Ρ‚ΡŒ прСдподсчёт? Π₯ΠΎΡ€ΠΎΡˆΠΈΠΉ вопрос πŸ™‚

ΠŸΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎΠ΅ суммированиС

ΠŸΠΎΠΆΠ°Π»ΡƒΠΉ, это самый распространённый Ρ‚Ρ€ΡŽΠΊ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΡ‡Π΅Π½ΡŒ часто ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‚ Π΄Ρ€ΡƒΠ³ Π·Π° Π΄Ρ€ΡƒΠ³ΠΎΠΌ Π½Π΅ Π²ΠΏΠΎΠ»Π½Π΅ ΠΎΠΏΡ‹Ρ‚Π½Ρ‹Π΅ Π·Π°ΠΊΠ»ΠΈΠ½Π°Ρ‚Π΅Π»ΠΈ, Π½Π΅ понимая, ΠΊΠ°ΠΊ ΠΎΠ½ Ρ‚ΠΎΡ‡Π½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚.

Начнём с 1 Π±Π°ΠΉΡ‚Π°. Π‘Π°ΠΉΡ‚ состоит ΠΈΠ· 4-Ρ… ΠΏΠΎΠ»Π΅ΠΉ ΠΏΠΎ 2 Π±ΠΈΡ‚Π°, сначала просуммируСм Π±ΠΈΡ‚Ρ‹ Π² этих полях, произнСся Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π²Ρ€ΠΎΠ΄Π΅:

Π’ΠΎΡ‚ ΠΏΠΎΡΡΠ½ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΊ Π΄Π°Π½Π½ΠΎΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ (ΠΏΠΎ-ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ, ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°Π΅ΠΌ Π±ΠΈΡ‚Ρ‹ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π±Π°ΠΉΡ‚Π° ΠΏΠ΅Ρ€Π²Ρ‹ΠΌΠΈ латинскими Π±ΡƒΠΊΠ²Π°ΠΌΠΈ):

8 Π±ΠΈΡ‚Ρ‚Π΅Π½ Ρ‚Ρ€Π°Ρ‚Ρ‹Π½ ΠΊΠΎΠ΄. image loader. 8 Π±ΠΈΡ‚Ρ‚Π΅Π½ Ρ‚Ρ€Π°Ρ‚Ρ‹Π½ ΠΊΠΎΠ΄ Ρ„ΠΎΡ‚ΠΎ. 8 Π±ΠΈΡ‚Ρ‚Π΅Π½ Ρ‚Ρ€Π°Ρ‚Ρ‹Π½ ΠΊΠΎΠ΄-image loader. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° 8 Π±ΠΈΡ‚Ρ‚Π΅Π½ Ρ‚Ρ€Π°Ρ‚Ρ‹Π½ ΠΊΠΎΠ΄. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° image loader. Для ΠΏΠΎΠ»Π½ΠΎΡ‚Ρ‹ понимания Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Ρ‡Π΅Ρ‚ΠΊΠΎ Π·Π½Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π±ΠΈΡ‚ ΠΈ Π±Π°ΠΉΡ‚, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΡƒΠΌΠ΅Ρ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ систСмы счислСния.

Одно ΠΈΠ· ΠΏΠΎΠ±ΠΈΡ‚ΠΎΠ²Ρ‹Ρ… «И» оставляСт Ρ‚ΠΎΠ»ΡŒΠΊΠΎ младшиС Π±ΠΈΡ‚Ρ‹ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π΄Π²ΡƒΡ…Π±ΠΈΡ‚ΠΎΠ²ΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ°, Π²Ρ‚ΠΎΡ€ΠΎΠ΅ оставляСт ΡΡ‚Π°Ρ€ΡˆΠΈΠ΅ Π±ΠΈΡ‚Ρ‹, Π½ΠΎ сдвигаСт ΠΈΡ… Π½Π° ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ младшим Π±ΠΈΡ‚Π°ΠΌ. Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ суммирования ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ сумму смСТных Π±ΠΈΡ‚ΠΎΠ² Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ Π΄Π²ΡƒΡ…Π±ΠΈΡ‚ΠΎΠ²ΠΎΠΌ Π±Π»ΠΎΠΊΠ΅ (послСдняя строка Π½Π° ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ΅ Π²Ρ‹ΡˆΠ΅).

Π’Π΅ΠΏΠ΅Ρ€ΡŒ слоТим ΠΏΠ°Ρ€Π°ΠΌΠΈ числа, находящиСся Π² Π΄Π²ΡƒΡ…Π±ΠΈΡ‚ΠΎΠ²Ρ‹Ρ… полях, помСщая Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π² 2 Ρ‡Π΅Ρ‚Ρ‹Ρ€Ρ‘Ρ…Π±ΠΈΡ‚ΠΎΠ²Ρ‹Ρ… поля:

ΠΠΈΠΆΠ΅ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° поясняСт Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚. ΠŸΡ€ΠΈΠ²ΠΎΠΆΡƒ Π΅Ρ‘ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π±Π΅Π· Π»ΠΈΡˆΠ½ΠΈΡ… слов:

8 Π±ΠΈΡ‚Ρ‚Π΅Π½ Ρ‚Ρ€Π°Ρ‚Ρ‹Π½ ΠΊΠΎΠ΄. image loader. 8 Π±ΠΈΡ‚Ρ‚Π΅Π½ Ρ‚Ρ€Π°Ρ‚Ρ‹Π½ ΠΊΠΎΠ΄ Ρ„ΠΎΡ‚ΠΎ. 8 Π±ΠΈΡ‚Ρ‚Π΅Π½ Ρ‚Ρ€Π°Ρ‚Ρ‹Π½ ΠΊΠΎΠ΄-image loader. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° 8 Π±ΠΈΡ‚Ρ‚Π΅Π½ Ρ‚Ρ€Π°Ρ‚Ρ‹Π½ ΠΊΠΎΠ΄. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° image loader. Для ΠΏΠΎΠ»Π½ΠΎΡ‚Ρ‹ понимания Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Ρ‡Π΅Ρ‚ΠΊΠΎ Π·Π½Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π±ΠΈΡ‚ ΠΈ Π±Π°ΠΉΡ‚, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΡƒΠΌΠ΅Ρ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ систСмы счислСния.

НаконСц, слоТим Π΄Π²Π° числа Π² Ρ‡Π΅Ρ‚Ρ‹Ρ€Ρ‘Ρ…Π±ΠΈΡ‚ΠΎΠ²Ρ‹Ρ… полях:

8 Π±ΠΈΡ‚Ρ‚Π΅Π½ Ρ‚Ρ€Π°Ρ‚Ρ‹Π½ ΠΊΠΎΠ΄. image loader. 8 Π±ΠΈΡ‚Ρ‚Π΅Π½ Ρ‚Ρ€Π°Ρ‚Ρ‹Π½ ΠΊΠΎΠ΄ Ρ„ΠΎΡ‚ΠΎ. 8 Π±ΠΈΡ‚Ρ‚Π΅Π½ Ρ‚Ρ€Π°Ρ‚Ρ‹Π½ ΠΊΠΎΠ΄-image loader. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° 8 Π±ΠΈΡ‚Ρ‚Π΅Π½ Ρ‚Ρ€Π°Ρ‚Ρ‹Π½ ΠΊΠΎΠ΄. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° image loader. Для ΠΏΠΎΠ»Π½ΠΎΡ‚Ρ‹ понимания Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Ρ‡Π΅Ρ‚ΠΊΠΎ Π·Π½Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π±ΠΈΡ‚ ΠΈ Π±Π°ΠΉΡ‚, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΡƒΠΌΠ΅Ρ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ систСмы счислСния.

ДСйствуя ΠΏΠΎ Π°Π½Π°Π»ΠΎΠ³ΠΈΠΈ, ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°ΡΠΏΡ€ΠΎΡΡ‚Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΡ‘ΠΌ Π½Π° любоС число Π±ΠΈΡ‚, Ρ€Π°Π²Π½ΠΎΠ΅ стСпСни Π΄Π²ΠΎΠΉΠΊΠΈ. Число строк заклинания Ρ€Π°Π²Π½ΠΎ Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠΌΡƒ Π»ΠΎΠ³Π°Ρ€ΠΈΡ„ΠΌΡƒ ΠΎΡ‚ числа Π±ΠΈΡ‚. Π£Π»ΠΎΠ²ΠΈΠ² идСю, взглянитС вскользь Π½Π° 4 Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, записанных Π½ΠΈΠΆΠ΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ Π² ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΠΈ своСго понимания.

На этом ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎΠ΅ суммированиС Π½Π΅ заканчиваСтся. Π Π°Π·Π²ΠΈΡ‚ΡŒ идСю позволяСт Ρ‚ΠΎ наблюдСниС, Ρ‡Ρ‚ΠΎ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΉ строчкС Π΄Π²Π°ΠΆΠ΄Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΎΠ΄Π½Π° ΠΈ Ρ‚Π° ΠΆΠ΅ битовая маска, Ρ‡Ρ‚ΠΎ ΠΊΠ°ΠΊ Π±ΡƒΠ΄Ρ‚ΠΎ Π½Π°Π²ΠΎΠ΄ΠΈΡ‚ Π½Π° ΠΌΡ‹ΡΠ»ΡŒ Β«Π° нСльзя Π»ΠΈ ΠΊΠ°ΠΊ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π· Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΏΠΎΠ±ΠΈΡ‚ΠΎΠ²ΠΎΠ΅ «И»?Β». МоТно, Π½ΠΎ Π½Π΅ сразу. Π’ΠΎΡ‚ Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ, Ссли Π²Π·ΡΡ‚ΡŒ Π² качСствС ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° ΠΊΠΎΠ΄ для u32 (смотритС ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ).

Π’ качСствС упраТнСния я Π±Ρ‹ Ρ…ΠΎΡ‚Π΅Π» ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠΈΡ‚ΡŒ Π΄ΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ‚ΠΎ, ΠΏΠΎΡ‡Π΅ΠΌΡƒ Π½ΠΈΠΆΠ΅ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ΄ Π±ΡƒΠ΄Π΅Ρ‚ Ρ‚ΠΎΡ‡Π½Ρ‹ΠΌ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π³ΠΎ. Для ΠΏΠ΅Ρ€Π²ΠΎΠΉ строки я даю подсказку, Π½ΠΎ Π½Π΅ смотритС Π² Π½Π΅Ρ‘ сразу:

АналогичныС Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹ ΠΈ для ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ….

НиТС приводятся Π΄Π²Π΅ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹: ΠΎΠ΄Π½Π° для ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠ³ΠΎ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ суммирования, Π° вторая для ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ.

Π Π΅ΠΆΠΈΠΌu8u16u32u64
x867,5214,1021,1262,70
x648,0611,8921,3022,59

Π Π΅ΠΆΠΈΠΌu8u16u32u64
x867,1811,8918,8665,00
x648,0910,2719,2019,20

Π’ Ρ†Π΅Π»ΠΎΠΌ ΠΌΡ‹ Π²ΠΈΠ΄ΠΈΠΌ, Ρ‡Ρ‚ΠΎ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Ρ…ΠΎΡ€ΠΎΡˆΠΎ, Π½ΠΎ ΠΏΡ€ΠΎΠΈΠ³Ρ€Ρ‹Π²Π°Π΅Ρ‚ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠΌΡƒ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ x86 для u64.

ΠšΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄

ΠœΡ‹ Π²ΠΈΠ΄ΠΈΠΌ, Ρ‡Ρ‚ΠΎ Π½Π°ΠΈΠ»ΡƒΡ‡ΡˆΠΈΠ΅ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ подсчёта Π΅Π΄ΠΈΠ½ΠΈΡ‡Π½Ρ‹Ρ… Π±ΠΈΡ‚ΠΎΠ² – это ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ (с ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ) ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ тираТирования с ΡƒΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ для подсчёта суммы Π±Π»ΠΎΠΊΠΎΠ². ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ ΠΎΠ±Π° ΠΌΠ΅Ρ‚ΠΎΠ΄Π°, получая ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ.

ΠŸΠ΅Ρ€Π²ΠΎΠ΅, Ρ‡Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ β€” Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π²Ρ‹Π΅ Ρ‚Ρ€ΠΈ строки ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°. Π­Ρ‚ΠΎ даст Π½Π°ΠΌ Ρ‚ΠΎΡ‡Π½ΡƒΡŽ сумму Π±ΠΈΡ‚ΠΎΠ² Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ Π±Π°ΠΉΡ‚Π΅ числа. НапримСр, для u32 Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠΌ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅:

Π’Π΅ΠΏΠ΅Ρ€ΡŒ нашС число n состоит ΠΈΠ· 4 Π±Π°ΠΉΡ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ слСдуСт Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ 4 числа, сумму ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΌΡ‹ ΠΈΡ‰Π΅ΠΌ:

8 Π±ΠΈΡ‚Ρ‚Π΅Π½ Ρ‚Ρ€Π°Ρ‚Ρ‹Π½ ΠΊΠΎΠ΄. image loader. 8 Π±ΠΈΡ‚Ρ‚Π΅Π½ Ρ‚Ρ€Π°Ρ‚Ρ‹Π½ ΠΊΠΎΠ΄ Ρ„ΠΎΡ‚ΠΎ. 8 Π±ΠΈΡ‚Ρ‚Π΅Π½ Ρ‚Ρ€Π°Ρ‚Ρ‹Π½ ΠΊΠΎΠ΄-image loader. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° 8 Π±ΠΈΡ‚Ρ‚Π΅Π½ Ρ‚Ρ€Π°Ρ‚Ρ‹Π½ ΠΊΠΎΠ΄. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° image loader. Для ΠΏΠΎΠ»Π½ΠΎΡ‚Ρ‹ понимания Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Ρ‡Π΅Ρ‚ΠΊΠΎ Π·Π½Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π±ΠΈΡ‚ ΠΈ Π±Π°ΠΉΡ‚, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΡƒΠΌΠ΅Ρ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ систСмы счислСния.

ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π½Π°ΠΉΡ‚ΠΈ сумму этих 4-Ρ… Π±Π°ΠΉΡ‚, Ссли ΡƒΠΌΠ½ΠΎΠΆΠΈΠΌ число n Π½Π° 0x01010101. Π’Ρ‹ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Ρ…ΠΎΡ€ΠΎΡˆΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ‚Π΅, Ρ‡Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ Ρ‚Π°ΠΊΠΎΠ΅ ΡƒΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅, для удобства опрСдСлСния ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π±ΡƒΠ΄Π΅Ρ‚ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ ΠΎΡ‚Π²Π΅Ρ‚, ΠΏΡ€ΠΈΠ²ΠΎΠΆΡƒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ:

8 Π±ΠΈΡ‚Ρ‚Π΅Π½ Ρ‚Ρ€Π°Ρ‚Ρ‹Π½ ΠΊΠΎΠ΄. image loader. 8 Π±ΠΈΡ‚Ρ‚Π΅Π½ Ρ‚Ρ€Π°Ρ‚Ρ‹Π½ ΠΊΠΎΠ΄ Ρ„ΠΎΡ‚ΠΎ. 8 Π±ΠΈΡ‚Ρ‚Π΅Π½ Ρ‚Ρ€Π°Ρ‚Ρ‹Π½ ΠΊΠΎΠ΄-image loader. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° 8 Π±ΠΈΡ‚Ρ‚Π΅Π½ Ρ‚Ρ€Π°Ρ‚Ρ‹Π½ ΠΊΠΎΠ΄. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° image loader. Для ΠΏΠΎΠ»Π½ΠΎΡ‚Ρ‹ понимания Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Ρ‡Π΅Ρ‚ΠΊΠΎ Π·Π½Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π±ΠΈΡ‚ ΠΈ Π±Π°ΠΉΡ‚, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΡƒΠΌΠ΅Ρ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ систСмы счислСния.

ΠžΡ‚Π²Π΅Ρ‚ находится Π² 3-Π±Π°ΠΉΡ‚Π΅ (Ссли ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΈΡ… ΠΎΡ‚ 0). Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ΠΏΡ€ΠΈΡ‘ΠΌ для u32 Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ Ρ‚Π°ΠΊ:

Π‘ΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρ‹ этого ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ сразу Π² ΠΈΡ‚ΠΎΠ³ΠΎΠ²ΠΎΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Π΅.

Π˜Ρ‚ΠΎΠ³ΠΎΠ²ΠΎΠ΅ сравнСниС

Π― ΠΏΡ€Π΅Π΄Π»Π°Π³Π°ΡŽ Ρ‡ΠΈΡ‚Π°Ρ‚Π΅Π»ΡŽ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΈΠ½Ρ‚Π΅Ρ€Π΅ΡΡƒΡŽΡ‰ΠΈΠ΅ Π΅Π³ΠΎ Π²Ρ‹Π²ΠΎΠ΄Ρ‹, ΠΈΠ·ΡƒΡ‡ΠΈΠ² Π΄Π²Π΅ Π½ΠΈΠΆΠ΅ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹. Π’ Π½ΠΈΡ… я ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡ΠΈΠ» Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ², ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΊ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΌΡ‹ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π»ΠΈ, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠΌΠ΅Ρ‚ΠΈΠ» ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΎΠΉ Ρ€Π°ΠΌΠΊΠΎΠΉ Ρ‚Π΅ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ я ΡΡ‡ΠΈΡ‚Π°ΡŽ Π½Π°ΠΈΠ»ΡƒΡ‡ΡˆΠΈΠΌΠΈ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΌ случаС. Π’Π΅Ρ…, ΠΊΡ‚ΠΎ Π΄ΡƒΠΌΠ°Π», Ρ‡Ρ‚ΠΎ прСдподсчёт всСгда Π²Ρ‹ΠΈΠ³Ρ€Ρ‹Π²Π°Π΅Ρ‚, ΠΎΠΆΠΈΠ΄Π°Π΅Ρ‚ нСбольшой ΡΡŽΡ€ΠΏΡ€ΠΈΠ· для Ρ€Π΅ΠΆΠΈΠΌΠ° x64.

Π˜Ρ‚ΠΎΠ³ΠΎΠ²ΠΎΠ΅ сравнСния для Ρ€Π΅ΠΆΠΈΠΌΠ° компиляции x86.
8 Π±ΠΈΡ‚Ρ‚Π΅Π½ Ρ‚Ρ€Π°Ρ‚Ρ‹Π½ ΠΊΠΎΠ΄. image loader. 8 Π±ΠΈΡ‚Ρ‚Π΅Π½ Ρ‚Ρ€Π°Ρ‚Ρ‹Π½ ΠΊΠΎΠ΄ Ρ„ΠΎΡ‚ΠΎ. 8 Π±ΠΈΡ‚Ρ‚Π΅Π½ Ρ‚Ρ€Π°Ρ‚Ρ‹Π½ ΠΊΠΎΠ΄-image loader. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° 8 Π±ΠΈΡ‚Ρ‚Π΅Π½ Ρ‚Ρ€Π°Ρ‚Ρ‹Π½ ΠΊΠΎΠ΄. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° image loader. Для ΠΏΠΎΠ»Π½ΠΎΡ‚Ρ‹ понимания Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Ρ‡Π΅Ρ‚ΠΊΠΎ Π·Π½Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π±ΠΈΡ‚ ΠΈ Π±Π°ΠΉΡ‚, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΡƒΠΌΠ΅Ρ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ систСмы счислСния.

Π˜Ρ‚ΠΎΠ³ΠΎΠ²ΠΎΠ΅ сравнСния для Ρ€Π΅ΠΆΠΈΠΌΠ° компиляции x64.
8 Π±ΠΈΡ‚Ρ‚Π΅Π½ Ρ‚Ρ€Π°Ρ‚Ρ‹Π½ ΠΊΠΎΠ΄. image loader. 8 Π±ΠΈΡ‚Ρ‚Π΅Π½ Ρ‚Ρ€Π°Ρ‚Ρ‹Π½ ΠΊΠΎΠ΄ Ρ„ΠΎΡ‚ΠΎ. 8 Π±ΠΈΡ‚Ρ‚Π΅Π½ Ρ‚Ρ€Π°Ρ‚Ρ‹Π½ ΠΊΠΎΠ΄-image loader. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° 8 Π±ΠΈΡ‚Ρ‚Π΅Π½ Ρ‚Ρ€Π°Ρ‚Ρ‹Π½ ΠΊΠΎΠ΄. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° image loader. Для ΠΏΠΎΠ»Π½ΠΎΡ‚Ρ‹ понимания Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Ρ‡Π΅Ρ‚ΠΊΠΎ Π·Π½Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π±ΠΈΡ‚ ΠΈ Π±Π°ΠΉΡ‚, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΡƒΠΌΠ΅Ρ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ систСмы счислСния.

Π—Π°ΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅

Ни Π² ΠΊΠΎΠ΅ΠΌ случаС Π½Π΅ рассматривайтС ΠΈΡ‚ΠΎΠ³ΠΎΠ²ΡƒΡŽ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ ΠΊΠ°ΠΊ Π΄ΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒΡΡ‚Π²ΠΎ Π² ΠΏΠΎΠ»ΡŒΠ·Ρƒ Ρ‚ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π°. ΠŸΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅, Ρ‡Ρ‚ΠΎ Π½Π° вашСм процСссорС ΠΈ с вашим компилятором Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ числа Π² Ρ‚Π°ΠΊΠΎΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎ ΠΈΠ½Ρ‹ΠΌΠΈ. К соТалСнию, ΠΌΡ‹ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ Ρ‚ΠΎΡ‡Π½ΠΎ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΠ· Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² окаТСтся Π»ΡƒΡ‡ΡˆΠ΅ Π² Ρ‚ΠΎΠΌ ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠΌ случаС. Под ΠΊΠ°ΠΆΠ΄ΡƒΡŽ Π·Π°Π΄Π°Ρ‡Ρƒ Π½ΡƒΠΆΠ½ΠΎ Π·Π°Ρ‚Π°Ρ‡ΠΈΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄, Π° ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ быстрого Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°, ΠΊ соТалСнию, Π½Π΅ сущСствуСт.

Π― ΠΈΠ·Π»ΠΎΠΆΠΈΠ» Ρ‚Π΅ ΠΈΠ΄Π΅ΠΈ, ΠΎ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… знаю сам, Π½ΠΎ это лишь ΠΈΠ΄Π΅ΠΈ, ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Π΅ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π² Ρ€Π°Π·Π½Ρ‹Ρ… комбинациях ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΡ‡Π΅Π½ΡŒ Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ. ОбъСдиняя эти ΠΈΠ΄Π΅ΠΈ Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ способами, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ ΠΎΠ³Ρ€ΠΎΠΌΠ½ΠΎΠ΅ количСство Ρ€Π°Π·Π½Ρ‹Ρ… Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² подсчёта Π΅Π΄ΠΈΠ½ΠΈΡ‡Π½Ρ‹Ρ… Π±ΠΈΡ‚ΠΎΠ², ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π²ΠΏΠΎΠ»Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΌ Π² ΠΊΠ°ΠΊΠΎΠΌ-Ρ‚ΠΎ своём случаС.

Бпасибо Π·Π° Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅. Π”ΠΎ Π½ΠΎΠ²Ρ‹Ρ… встрСч!

UPD: Π˜Π½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡ POPCNT ΠΈΠ· SSE4.2 Π½Π΅ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π° Π² список тСстирования, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Ρƒ мСня Π½Π΅Ρ‚ процСссора, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ SSE4.2.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π’Π°Ρˆ адрСс email Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ *