Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΠΎΠ±ΠΈΡ‚ΠΎΠ²Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ

О Π±ΠΈΡ‚ΠΎΠ²Ρ‹Ρ… опСрациях

ΠΠ²Ρ‚ΠΎΡ€ΠΈΠ·ΡƒΠΉΡ‚Π΅ΡΡŒ

О Π±ΠΈΡ‚ΠΎΠ²Ρ‹Ρ… опСрациях

Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΠΎΠ±ΠΈΡ‚ΠΎΠ²Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΠΎΠ±ΠΈΡ‚ΠΎΠ²Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΠΎΠ±ΠΈΡ‚ΠΎΠ²Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΠΎΠ±ΠΈΡ‚ΠΎΠ²Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ. Π€ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΠΎΠ±ΠΈΡ‚ΠΎΠ²Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ я расскаТу Π²Π°ΠΌ ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Π±ΠΈΡ‚ΠΎΠ²Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ. Π‘ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ взгляда ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ Π²Π°ΠΌ Ρ‡Π΅ΠΌ-Ρ‚ΠΎ слоТным ΠΈ бСсполСзным, Π½ΠΎ Π½Π° самом Π΄Π΅Π»Π΅ это совсСм Π½Π΅ Ρ‚Π°ΠΊ. Π’ этом я ΠΈ ΠΏΠΎΠΏΡ‹Ρ‚Π°ΡŽΡΡŒ вас ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒ.

Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅

ΠŸΠΎΠ±ΠΈΡ‚ΠΎΠ²Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ проводят ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ нСпосрСдствСнно Π½Π° Π±ΠΈΡ‚Π°Ρ… числа, поэтому числа Π² ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ… Π±ΡƒΠ΄ΡƒΡ‚ Π² Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠΉ систСмС счислСния.

Π― расскаТу ΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… ΠΏΠΎΠ±ΠΈΡ‚ΠΎΠ²Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°Ρ…:

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

О Π±ΠΈΡ‚ΠΎΠ²Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°Ρ… Π²Π°ΠΌ Ρ‚Π°ΠΊΠΆΠ΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π·Π½Π°Ρ‚ΡŒ:

ΠŸΠΎΠ±ΠΈΡ‚ΠΎΠ²ΠΎΠ΅ Π˜Π›Π˜ (OR)

ΠŸΠΎΠ±ΠΈΡ‚ΠΎΠ²ΠΎΠ΅ Π˜Π›Π˜ дСйствуСт эквивалСнтно логичСскому Π˜Π›Π˜, Π½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½Π½ΠΎΠΌΡƒ ΠΊ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΏΠ°Ρ€Π΅ Π±ΠΈΡ‚ΠΎΠ² Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠ³ΠΎ числа. Π”Π²ΠΎΠΈΡ‡Π½Ρ‹ΠΉ разряд Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π° Ρ€Π°Π²Π΅Π½ 0 Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚ΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° ΠΎΠ±Π° ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… Π±ΠΈΡ‚Π° Π² Ρ€Π°Π²Π½Ρ‹ 0. Π’ΠΎ всСх Π΄Ρ€ΡƒΠ³ΠΈΡ… случаях Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹ΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Ρ€Π°Π²Π΅Π½ 1. Π’ΠΎ Π΅ΡΡ‚ΡŒ, Ссли Ρƒ нас Π΅ΡΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ Ρ‚Π°Π±Π»ΠΈΡ†Π° истинности:

Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΠΎΠ±ΠΈΡ‚ΠΎΠ²Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΠΎΠ±ΠΈΡ‚ΠΎΠ²Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΠΎΠ±ΠΈΡ‚ΠΎΠ²Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΠΎΠ±ΠΈΡ‚ΠΎΠ²Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ. Π€ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΠΎΠ±ΠΈΡ‚ΠΎΠ²Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ

38 | 53 Π±ΡƒΠ΄Π΅Ρ‚ Ρ‚Π°ΠΊΠΈΠΌ:

A00100110
B00110101
A | B00110111

ΠŸΠΎΠ±ΠΈΡ‚ΠΎΠ²ΠΎΠ΅ И (AND)

ΠŸΠΎΠ±ΠΈΡ‚ΠΎΠ²ΠΎΠ΅ И β€” это Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π²Ρ€ΠΎΠ΄Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, ΠΏΡ€ΠΎΡ‚ΠΈΠ²ΠΎΠΏΠΎΠ»ΠΎΠΆΠ½ΠΎΠΉ ΠΏΠΎΠ±ΠΈΡ‚ΠΎΠ²ΠΎΠΌΡƒ Π˜Π›Π˜. Π”Π²ΠΎΠΈΡ‡Π½Ρ‹ΠΉ разряд Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π° Ρ€Π°Π²Π΅Π½ 1 Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚ΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° ΠΎΠ±Π° ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… Π±ΠΈΡ‚Π° ΠΎΠΏΠ΅Ρ€Π°Π½Π΄ΠΎΠ² Ρ€Π°Π²Π½Ρ‹ 1. Π”Ρ€ΡƒΠ³ΠΈΠΌΠΈ словами, ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ, Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹Π΅ разряды ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ²ΡˆΠ΅Π³ΠΎΡΡ числа β€” это Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ умноТСния ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… Π±ΠΈΡ‚ΠΎΠ² ΠΎΠΏΠ΅Ρ€Π°Π½Π΄Π°: 1Ρ…1 = 1, 1Ρ…0 = 0. ΠŸΠΎΠ±ΠΈΡ‚ΠΎΠ²ΠΎΠΌΡƒ И соотвСтствуСт ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ Ρ‚Π°Π±Π»ΠΈΡ†Π° истинности:

Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΠΎΠ±ΠΈΡ‚ΠΎΠ²Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΠΎΠ±ΠΈΡ‚ΠΎΠ²Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΠΎΠ±ΠΈΡ‚ΠΎΠ²Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΠΎΠ±ΠΈΡ‚ΠΎΠ²Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ. Π€ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΠΎΠ±ΠΈΡ‚ΠΎΠ²Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΠΎΠ±ΠΈΡ‚ΠΎΠ²ΠΎΠ³ΠΎ И Π½Π° Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ 38 & 53:

A00100110
B00110101
A & B00100100

Π˜ΡΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰Π΅Π΅ Π˜Π›Π˜ (XOR)

Π Π°Π·Π½ΠΈΡ†Π° ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΈΡΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰ΠΈΠΌ Π˜Π›Π˜ ΠΈ ΠΏΠΎΠ±ΠΈΡ‚ΠΎΠ²Ρ‹ΠΌ Π˜Π›Π˜ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ для получСния 1 Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ Π±ΠΈΡ‚ Π² ΠΏΠ°Ρ€Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ 1:

Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΠΎΠ±ΠΈΡ‚ΠΎΠ²Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΠΎΠ±ΠΈΡ‚ΠΎΠ²Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΠΎΠ±ΠΈΡ‚ΠΎΠ²Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΠΎΠ±ΠΈΡ‚ΠΎΠ²Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ. Π€ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΠΎΠ±ΠΈΡ‚ΠΎΠ²Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ

НапримСр, Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ 138^43 Π±ΡƒΠ΄Π΅Ρ‚ равно…

A10001010
B00101011
A ^ B10100001

Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ^ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠΌΠ΅Π½ΡΡ‚ΡŒ значСния Π΄Π²ΡƒΡ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… (ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΡ… ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΉ Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ…) Π±Π΅Π· использования Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ.

Π’Π°ΠΊΠΆΠ΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΈΡΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰Π΅Π³ΠΎ Π˜Π›Π˜ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Ρ‚ΡŒ тСкст. Для этого Π½ΡƒΠΆΠ½ΠΎ лишь ΠΈΡ‚Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‡Π΅Ρ€Π΅Π· всС символы, ΠΈ ^ ΠΈΡ… с символом-ΠΊΠ»ΡŽΡ‡ΠΎΠΌ. Для Π±ΠΎΠ»Π΅Π΅ слоТного ΡˆΠΈΡ„Ρ€Π° ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ строку символов:

Π˜ΡΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰Π΅Π΅ Π˜Π›Π˜ Π½Π΅ самый Π½Π°Π΄Π΅ΠΆΠ½Ρ‹ΠΉ способ ΡˆΠΈΡ„Ρ€ΠΎΠ²ΠΊΠΈ, Π½ΠΎ Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Ρ‡Π°ΡΡ‚ΡŒΡŽ ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°.

ΠŸΠΎΠ±ΠΈΡ‚ΠΎΠ²ΠΎΠ΅ ΠΎΡ‚Ρ€ΠΈΡ†Π°Π½ΠΈΠ΅ (NOT)

ΠŸΠΎΠ±ΠΈΡ‚ΠΎΠ²ΠΎΠ΅ ΠΎΡ‚Ρ€ΠΈΡ†Π°Π½ΠΈΠ΅ ΠΈΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ всС Π±ΠΈΡ‚Ρ‹ ΠΎΠΏΠ΅Ρ€Π°Π½Π΄Π°. Π’ΠΎ Π΅ΡΡ‚ΡŒ, Ρ‚ΠΎ Ρ‡Ρ‚ΠΎ Π±Ρ‹Π»ΠΎ 1 станСт 0, ΠΈ Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚.

Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΠΎΠ±ΠΈΡ‚ΠΎΠ²Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΠΎΠ±ΠΈΡ‚ΠΎΠ²Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΠΎΠ±ΠΈΡ‚ΠΎΠ²Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΠΎΠ±ΠΈΡ‚ΠΎΠ²Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ. Π€ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΠΎΠ±ΠΈΡ‚ΠΎΠ²Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ

Π’ΠΎΡ‚, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, опСрация

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ Π±ΡƒΠ΄Π΅Ρ‚ 20310

ΠŸΡ€ΠΈ использовании ΠΏΠΎΠ±ΠΈΡ‚ΠΎΠ²ΠΎΠ³ΠΎ отрицания Π·Π½Π°ΠΊ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π° всСгда Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΡ‚ΠΈΠ²ΠΎΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ Π·Π½Π°ΠΊΡƒ исходного числа (ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ со Π·Π½Π°ΠΊΠΎΠ²Ρ‹ΠΌΠΈ числами). ΠŸΠΎΡ‡Π΅ΠΌΡƒ Ρ‚Π°ΠΊ происходит, ΡƒΠ·Π½Π°Π΅Ρ‚Π΅ прямо сСйчас.

Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄

Π—Π΄Π΅ΡΡŒ ΠΌΠ½Π΅ стоит Ρ€Π°ΡΡΠΊΠ°Π·Π°Ρ‚ΡŒ Π²Π°ΠΌ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΎ способС прСдставлСния ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Ρ†Π΅Π»Ρ‹Ρ… чисСл Π² Π­Π’Πœ, Π° ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΌ ΠΊΠΎΠ΄Π΅ (two’s complement). НС вдаваясь Π² подробности, ΠΎΠ½ Π½ΡƒΠΆΠ΅Π½ для облСгчСния Π°Ρ€ΠΈΡ„ΠΌΠ΅Ρ‚ΠΈΠΊΠΈ Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹Ρ… чисСл.

Π“Π»Π°Π²Π½ΠΎΠ΅, Ρ‡Ρ‚ΠΎ Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π·Π½Π°Ρ‚ΡŒ ΠΎ числах, записанных Π² Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΌ ΠΊΠΎΠ΄Π΅ β€” это Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΡΡ‚Π°Ρ€ΡˆΠΈΠΉ разряд являСтся Π·Π½Π°ΠΊΠΎΠ²Ρ‹ΠΌ. Если ΠΎΠ½ Ρ€Π°Π²Π΅Π½ 0, Ρ‚ΠΎ число ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ ΠΈ совпадаСт с прСдставлСниСм этого числа Π² прямом ΠΊΠΎΠ΄Π΅, Π° Ссли 1 β€” Ρ‚ΠΎ ΠΎΠ½ΠΎ ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ΅. Π’ΠΎ Π΅ΡΡ‚ΡŒ, 10111101 β€” ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ число, Π° 01000011 β€” ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅.

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ число Π² Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄, Π½ΡƒΠΆΠ½ΠΎ ΠΈΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ всС Π±ΠΈΡ‚Ρ‹ числа (Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ, ΠΏΠΎ сути, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ±ΠΈΡ‚ΠΎΠ²ΠΎΠ΅ ΠΎΡ‚Ρ€ΠΈΡ†Π°Π½ΠΈΠ΅) ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρƒ 1.

НапримСр, Ссли ΠΌΡ‹ ΠΈΠΌΠ΅Π΅ΠΌ 109:

A01101101

A+1

10010011

ΠŸΠΎΠ±ΠΈΡ‚ΠΎΠ²Ρ‹ΠΉ сдвиг Π²Π»Π΅Π²ΠΎ

ΠŸΠΎΠ±ΠΈΡ‚ΠΎΠ²Ρ‹Π΅ сдвиги Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‚ΡΡ ΠΎΡ‚ рассмотрСнных Ρ€Π°Π½Π΅Π΅ Π±ΠΈΡ‚ΠΎΠ²Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ. ΠŸΠΎΠ±ΠΈΡ‚ΠΎΠ²Ρ‹ΠΉ сдвиг Π²Π»Π΅Π²ΠΎ сдвигаСт Π±ΠΈΡ‚Ρ‹ своСго ΠΎΠΏΠ΅Ρ€Π°Π½Π΄Π° Π½Π° N количСство Π±ΠΈΡ‚ΠΎΠ² Π²Π»Π΅Π²ΠΎ, начиная с младшСго Π±ΠΈΡ‚Π°. ΠŸΡƒΡΡ‚Ρ‹Π΅ мСста послС сдвига Π·Π°ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ нулями. ΠŸΡ€ΠΎΠΈΡΡ…ΠΎΠ΄ΠΈΡ‚ это Ρ‚Π°ΠΊ:

ΠŸΠΎΠ±ΠΈΡ‚ΠΎΠ²Ρ‹ΠΉ сдвиг Π²ΠΏΡ€Π°Π²ΠΎ

Как Π²Ρ‹ ΠΌΠΎΠ³Π»ΠΈ Π΄ΠΎΠ³Π°Π΄Π°Ρ‚ΡŒΡΡ, >> сдвигаСт Π±ΠΈΡ‚Ρ‹ ΠΎΠΏΠ΅Ρ€Π°Π½Π΄Π° Π½Π° ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π΅Π½Π½ΠΎΠ΅ количСство Π±ΠΈΡ‚ΠΎΠ² Π²ΠΏΡ€Π°Π²ΠΎ.

Если ΠΎΠΏΠ΅Ρ€Π°Π½Π΄ ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ, Ρ‚ΠΎ пустыС мСста Π·Π°ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ нулями. Если ΠΆΠ΅ ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ ΠΌΡ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅ΠΌ с ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ числом, Ρ‚ΠΎ всС пустыС мСста слСва Π·Π°ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ Π΅Π΄ΠΈΠ½ΠΈΡ†Π°ΠΌΠΈ. Π­Ρ‚ΠΎ дСлаСтся для сохранСния Π·Π½Π°ΠΊΠ° Π² соотвСтствии с Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ ΠΊΠΎΠ΄ΠΎΠΌ, ΠΎΠ±ΡŠΡΡΠ½Π΅Π½Π½Ρ‹ΠΌ Ρ€Π°Π½Π΅Π΅.

Π’Ρ‹Π²ΠΎΠ΄

Π˜Ρ‚Π°ΠΊ, Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅ большС ΠΎ Π±ΠΈΡ‚ΠΎΠ²Ρ‹Ρ… опСрациях ΠΈ Π½Π΅ Π±ΠΎΠΈΡ‚Π΅ΡΡŒ ΠΈΡ…. ΠœΠΎΠ³Ρƒ ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ >>1 ΠΏΡ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ Π΄Π΅Π»Π΅Π½ΠΈΠΈ Π½Π° 2. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, Π±ΠΈΡ‚ΠΎΠ²Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π½Π΅ΠΏΠ»ΠΎΡ…ΠΎ ΠΈΠΌΠ΅Ρ‚ΡŒ Π² своСм арсСналС, ΠΈ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹ смоТСтС Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΈΠΌΠΈ Π² случаС надобности ΠΈΠ»ΠΈ ΠΆΠ΅ ΠΎΡ‚Π²Π΅Ρ‚ΠΈΡ‚ΡŒ Π½Π° ΠΊΠ°Π²Π΅Ρ€Π·Π½Ρ‹ΠΉ вопрос Π½Π° собСсСдовании.

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

Π‘ΠΈΡ‚ΠΎΠ²Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ

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

Как ΠΏΠΎΠ½ΡΡ‚ΡŒ ΠΏΠΎΠ±ΠΈΡ‚ΠΎΠ²Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ

1. ΠŸΠ΅Ρ€Π΅Π²Π΅Π΄Π΅ΠΌ ΠΏΠ°Ρ€Ρƒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Ρ‹Ρ… Ρ†Π΅Π»Ρ‹Ρ… чисСл Π΄ΠΎ 256 (ΠΎΠ΄ΠΈΠ½ Π±Π°ΠΉΡ‚) Π² Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠ΅ прСдставлСниС.

2. Π’Π΅ΠΏΠ΅Ρ€ΡŒ располоТим Π±ΠΈΡ‚Ρ‹ Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ числа ΠΏΠΎΠ΄ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌΠΈ Π±ΠΈΡ‚Π°ΠΌΠΈ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠΌ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Π΅ логичСскиС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΊ Ρ†ΠΈΡ„Ρ€Π°ΠΌ, стоящим Π² ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹Ρ… разрядах ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ ΠΈ Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ числа. НапримСр, Ссли Π² послСднСм (младшСм) разрядС ΠΎΠ΄Π½ΠΎΠ³ΠΎ числа стоит 1, Π° Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ числа β€” 0, Ρ‚ΠΎ логичСская опСрация and Π²Π΅Ρ€Π½Π΅Ρ‚ 0, Π° or Π²Π΅Ρ€Π½Π΅Ρ‚ 1. ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ not ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊ ΠΏΠ΅Ρ€Π²ΠΎΠΌΡƒ числу.

3. ΠŸΠ΅Ρ€Π΅Π²Π΅Π΄Π΅ΠΌ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π² Π΄Π΅ΡΡΡ‚ΠΈΡ‡Π½ΡƒΡŽ систСму счислСния.

4. Π˜Ρ‚Π°ΠΊ, Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ ΠΏΠΎΠ±ΠΈΡ‚ΠΎΠ²Ρ‹Ρ… логичСских ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΎΡΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅:

Π’ΠΎΡ‚ Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ выполнСния логичСских ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Π½Π°Π΄ Π±ΠΈΡ‚Π°ΠΌΠΈ. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ Π΅Π³ΠΎ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ.

Π—Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ½Ρ‹ ΠΏΠΎΠ±ΠΈΡ‚ΠΎΠ²Ρ‹Π΅ логичСскиС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ

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

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π±ΠΈΡ‚ΠΎΠ²

ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΠΌ, Ρ‡Ρ‚ΠΎ имССтся Π±Π°ΠΉΡ‚ памяти с нСизвСстным Π½Π°ΠΌ содСрТимым. Π˜Π·Π²Π΅ΡΡ‚Π½ΠΎ, Ρ‡Ρ‚ΠΎ логичСская опСрация and Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ 1, Ссли Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ±Π° ΠΎΠΏΠ΅Ρ€Π°Π½Π΄Π° содСрТат 1. Если ΠΊ нСизвСстному числу ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΏΠΎΠ±ΠΈΡ‚ΠΎΠ²ΠΎΠ΅ логичСскоС ΡƒΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅ (ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ and ) Π½Π° число 255 (Ρ‡Ρ‚ΠΎ Π² Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠΌ прСдставлСнии 1111 1111), Ρ‚ΠΎ Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ нСизвСстноС число. ΠžΠ±Π½ΡƒΠ»ΡΡ‚ΡΡ Ρ‚Π΅ Π΅Π΄ΠΈΠ½ΠΈΡ†Ρ‹ Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠ³ΠΎ прСдставлСния числа 255, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ΡƒΠΌΠ½ΠΎΠΆΠ΅Π½Ρ‹ Π½Π° разряды нСизвСстного числа, содСрТащиС 0. НапримСр, ΠΏΡƒΡΡ‚ΡŒ нСизвСстноС число 38 (0010 0110), Ρ‚ΠΎΠ³Π΄Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π±ΠΈΡ‚ΠΎΠ² Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ Ρ‚Π°ΠΊ:

ΠžΠ±Π½ΡƒΠ»Π΅Π½ΠΈΠ΅ Π±ΠΈΡ‚ΠΎΠ²

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±Π½ΡƒΠ»ΠΈΡ‚ΡŒ ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ Π±ΠΈΡ‚ числа, Π½ΡƒΠΆΠ½ΠΎ Π΅Π³ΠΎ логичСски ΡƒΠΌΠ½ΠΎΠΆΠΈΡ‚ΡŒ Π½Π° 0.

ΠžΠ±Ρ€Π°Ρ‚ΠΈΠΌ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅:

Установка Π±ΠΈΡ‚ΠΎΠ² Π² Π΅Π΄ΠΈΠ½ΠΈΡ†Ρƒ

ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π²Ρ‚ΠΎΡ€ΠΎΠΉ ΠΏΠΎ ΡΡ‚Π°Ρ€ΡˆΠΈΠ½ΡΡ‚Π²Ρƒ Π±ΠΈΡ‚ числа x Π² Π΅Π΄ΠΈΠ½ΠΈΡ†Ρƒ, Π½Π°Π΄ΠΎ Π΅Π³ΠΎ логичСски ΡΠ»ΠΎΠΆΠΈΡ‚ΡŒ с 64 ( x or 64 ).

Π‘ΠΌΠ΅Π½Π° Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π±ΠΈΡ‚ΠΎΠ²

ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΏΠΎΠ±ΠΈΡ‚ΠΎΠ²ΠΎΠ³ΠΎ цикличСского сдвига

Помимо ΠΏΠΎΠ±ΠΈΡ‚ΠΎΠ²Ρ‹Ρ… логичСских ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… языках программирования прСдусмотрСны Π±ΠΈΡ‚ΠΎΠ²Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ цикличСского сдвига Π²Π»Π΅Π²ΠΎ ΠΈΠ»ΠΈ Π²ΠΏΡ€Π°Π²ΠΎ. НапримСр, Π² языкС программирования Паскаль эти ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°ΡŽΡ‚ΡΡ shl (сдвиг Π²Π»Π΅Π²ΠΎ) ΠΈ shr (сдвиг Π²ΠΏΡ€Π°Π²ΠΎ).

ΠŸΡ€ΠΈ сдвигС Π²Π»Π΅Π²ΠΎ Ρ‚Π΅Ρ€ΡΡŽΡ‚ΡΡ ΡΡ‚Π°Ρ€ΡˆΠΈΠ΅ Π±ΠΈΡ‚Ρ‹ исходного числа, Π½Π° ΠΈΡ… мСсто становятся младшиС. ОсвободившиСся младшиС разряды Π·Π°ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ нулями.

ΠŸΡ€ΠΈ сдвигС Π²ΠΏΡ€Π°Π²ΠΎ Ρ‚Π΅Ρ€ΡΡŽΡ‚ΡΡ младшиС Π±ΠΈΡ‚Ρ‹ исходного числа, Π½Π° ΠΈΡ… мСсто становятся ΡΡ‚Π°Ρ€ΡˆΠΈΠ΅. ОсвободившиСся ΡΡ‚Π°Ρ€ΡˆΠΈΠ΅ разряды Π·Π°ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ нулями, Ссли исходноС число Π±Ρ‹Π»ΠΎ ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ.

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

Π‘ΠΈΡ‚ΠΎΠ²Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ

Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΠΎΠ±ΠΈΡ‚ΠΎΠ²Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΠΎΠ±ΠΈΡ‚ΠΎΠ²Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΠΎΠ±ΠΈΡ‚ΠΎΠ²Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΠΎΠ±ΠΈΡ‚ΠΎΠ²Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ. Π€ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΠΎΠ±ΠΈΡ‚ΠΎΠ²Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈΠ”Π°Π½Π½Ρ‹ΠΉ ΡƒΡ€ΠΎΠΊ посвящён Π±ΠΈΡ‚ΠΎΠ²Ρ‹ΠΌ опСрациям (опСрациям с Π±ΠΈΡ‚Π°ΠΌΠΈ, Π±ΠΈΡ‚ΠΎΠ²ΠΎΠΉ ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ΅, bitmath), ΠΈΠ· Π½Π΅Π³ΠΎ Π²Ρ‹ ΡƒΠ·Π½Π°Π΅Ρ‚Π΅, ΠΊΠ°ΠΊ ΠΎΠΏΠ΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ с Π±ΠΈΡ‚Π°ΠΌΠΈ – элСмСнтарными ячСйками памяти ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°. ΠœΡ‹ ΡƒΠΆΠ΅ ΡΡ‚Π°Π»ΠΊΠΈΠ²Π°Π»ΠΈΡΡŒ с Π±ΠΈΡ‚ΠΎΠ²Ρ‹ΠΌΠΈ опСрациями Π² ΡƒΡ€ΠΎΠΊΠ΅ ΠΏΡ€ΠΎ рСгистры ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°, сСйчас рассмотрим всё максимально ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ. Данная Ρ‚Π΅ΠΌΠ° являСтся ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· самых слоТных для понимания Π² Ρ€Π°ΠΌΠΊΠ°Ρ… Π΄Π°Π½Π½ΠΎΠ³ΠΎ курса ΡƒΡ€ΠΎΠΊΠΎΠ², Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ Π΄Π°Π²Π°ΠΉΡ‚Π΅ разбСрёмся, Π·Π°Ρ‡Π΅ΠΌ Π²ΠΎΠΎΠ±Ρ‰Π΅ Π½ΡƒΠΆΠ½ΠΎ ΡƒΠΌΠ΅Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с Π±ΠΈΡ‚Π°ΠΌΠΈ:

Π”Π°Π½Π½Ρ‹ΠΉ ΡƒΡ€ΠΎΠΊ основан Π½Π° ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½ΠΎΠΌ ΡƒΡ€ΠΎΠΊΠ΅ ΠΏΠΎ Π±ΠΈΡ‚ΠΎΠ²Ρ‹ΠΌ опСрациям ΠΎΡ‚ Arduino, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π΅Π³ΠΎ здСсь – Ρ‚Π°ΠΌ всё описано Ρ‡ΡƒΡ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ.

Двоичная систСма ΠΈ Ρ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ…

2 Π² стСпСниDECBIN
010b00000001
120b00000010
240b00000100
380b00001000
4160b00010000
5320b00100000
6640b01000000
71280b10000000

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΡΡ‚Π΅ΠΏΠ΅Π½ΡŒ Π΄Π²ΠΎΠΉΠΊΠΈ явно β€œΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚β€ Π½Π° Π½ΠΎΠΌΠ΅Ρ€ Π±ΠΈΡ‚Π° Π² Π±Π°ΠΉΡ‚Π΅, считая справа Π½Π°Π»Π΅Π²ΠΎ (ΠΏΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π°Ρ… ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΠ½Π°Ρ‡Π΅). Напомню, Ρ‡Ρ‚ΠΎ Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½ΠΎ Π½Π΅Π²Π°ΠΆΠ½ΠΎ, Π² ΠΊΠ°ΠΊΠΎΠΉ систСмС исчислСния Π²Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅ – ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Ρƒ всё Ρ€Π°Π²Π½ΠΎ ΠΈ ΠΎΠ½ Π²ΠΎ всём Π²ΠΈΠ΄ΠΈΡ‚ Π΅Π΄ΠΈΠ½ΠΈΡ†Ρ‹ ΠΈ Π½ΡƒΠ»ΠΈ. Если β€œΡΠ»ΠΎΠΆΠΈΡ‚ΡŒβ€ ΠΏΠΎΠ»Π½Ρ‹ΠΉ Π±Π°ΠΉΡ‚ Π² дСсятичном прСдставлСнии Π±ΠΈΡ‚ΠΎΠ², Ρ‚ΠΎ ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ ΠΊΠ°ΠΊ Ρ€Π°Π· 255: 128+64+32+16+8+4+2+1 = 255. НСтрудно Π΄ΠΎΠ³Π°Π΄Π°Ρ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ число 0b11000000 Ρ€Π°Π²Π½ΠΎ 128+64, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ 192. ИмСнно Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΈ получаСтся вСсь Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ ΠΎΡ‚ 0 Π΄ΠΎ 255, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ умСщаСтся Π² ΠΎΠ΄ΠΈΠ½ Π±Π°ΠΉΡ‚. Если Π²Π·ΡΡ‚ΡŒ Π΄Π²Π° Π±Π°ΠΉΡ‚Π° – Π±ΡƒΠ΄Π΅Ρ‚ всё Ρ‚ΠΎ ΠΆΠ΅ самоС, просто ячССк Π±ΡƒΠ΄Π΅Ρ‚ 16, Ρ‚ΠΎ ΠΆΠ΅ самоС для 4 Π±Π°ΠΉΡ‚ – 32 ячСйки с Π΅Π΄ΠΈΠ½ΠΈΡ†Π°ΠΌΠΈ ΠΈ нулями, каТдая ΠΈΠΌΠ΅Π΅Ρ‚ свой Π½ΠΎΠΌΠ΅Ρ€ согласно стСпСни Π΄Π²ΠΎΠΉΠΊΠΈ. Π”Π°Π²Π°ΠΉΡ‚Π΅ Π½Π°Ρ‡Π½Ρ‘ΠΌ манипуляции с Π±ΠΈΡ‚Π°ΠΌΠΈ с самого простого – с ΠΌΠ°ΠΊΡ€ΠΎ-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ΄ΡƒΡ‚ β€œΠ² комплСктС” с ядром Arduino.

ΠœΠ°ΠΊΡ€ΠΎΡΡ‹ для манипуляций с Π±ΠΈΡ‚Π°ΠΌΠΈ

Π’ β€œΠ±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅β€ Arduino.h Π΅ΡΡ‚ΡŒ нСсколько ΡƒΠ΄ΠΎΠ±Π½Ρ‹Ρ… макросов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ ΠΈ Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π±ΠΈΡ‚Ρ‹ Π² Π±Π°ΠΉΡ‚Π΅:

ΠœΠ°ΠΊΡ€ΠΎΡΡ‹ Arduino.hДСйствиС
bitRead(value, bit)Π§ΠΈΡ‚Π°Π΅Ρ‚ Π±ΠΈΡ‚ ΠΏΠΎΠ΄ Π½ΠΎΠΌΠ΅Ρ€ΠΎΠΌ bit Π² числС value
bitSet(value, bit)Π’ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ (ставит 1) Π±ΠΈΡ‚ ΠΏΠΎΠ΄ Π½ΠΎΠΌΠ΅Ρ€ΠΎΠΌ bit Π² числС value
bitClear(value, bit)Π’Ρ‹ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ (ставит 0) Π±ΠΈΡ‚ ΠΏΠΎΠ΄ Π½ΠΎΠΌΠ΅Ρ€ΠΎΠΌ bit Π² числС value
bitWrite(value, bit, bitvalue)Π‘Ρ‚Π°Π²ΠΈΡ‚ Π±ΠΈΡ‚ ΠΏΠΎΠ΄ Π½ΠΎΠΌΠ΅Ρ€ΠΎΠΌ bit Π² состояниС bitvalue (0 ΠΈΠ»ΠΈ 1) Π² числС value
bit(bit)Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ 2 Π² стСпСни bit
Π”Ρ€ΡƒΠ³ΠΈΠ΅ встроСнныС макросы
_BV(bit)Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ 2 Π² стСпСни bit
bit_is_set(value, bit)ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π½Π° Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π½ΠΎΡΡ‚ΡŒ (1) Π±ΠΈΡ‚Π° bit Π² числС value
bit_is_clear(value, bit)ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π½Π° Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π΅Π½Π½ΠΎΡΡ‚ΡŒ (0) Π±ΠΈΡ‚Π° bit Π² числС value

Π‘ΠΈΡ‚ΠΎΠ²Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ

ΠŸΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΠΌ ΠΊ Π±ΠΎΠ»Π΅Π΅ слоТным Π²Π΅Ρ‰Π°ΠΌ. На самом Π΄Π΅Π»Π΅ ΠΎΠ½ΠΈ максимально просты для ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°, Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ просты, Ρ‡Ρ‚ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ Π·Π° ΠΎΠ΄ΠΈΠ½ Ρ‚Π°ΠΊΡ‚. ΠŸΡ€ΠΈ частотС 16 ΠœΠ“Ρ† (Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ ΠΏΠ»Π°Ρ‚ Arduino) ΠΎΠ΄Π½Π° опСрация Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ 0.0625 микросСкунды.

Π‘ΠΈΡ‚ΠΎΠ²ΠΎΠ΅ И

И (AND), ΠΎΠ½ΠΎ ΠΆΠ΅ β€œΠ»ΠΎΠ³ΠΈΡ‡Π΅ΡΠΊΠΎΠ΅ умноТСниС”, выполняСтся ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ & ΠΈΠ»ΠΈ and ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅:

ОсновноС ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ И – битовая маска. ΠŸΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ‚ β€œΠ²Π·ΡΡ‚ΡŒβ€ ΠΈΠ· Π±Π°ΠΉΡ‚Π° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Π΅ Π±ΠΈΡ‚Ρ‹:

Π’ΠΎ Π΅ΡΡ‚ΡŒ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ & ΠΌΡ‹ взяли ΠΈΠ· Π±Π°ΠΉΡ‚Π° 0b11001100 Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π±ΠΈΡ‚Ρ‹ 10000111, Π° ΠΈΠΌΠ΅Π½Π½ΠΎ – 0b11001100, ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈ 0b10000100 Π’Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ составной ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ &=

Π‘ΠΈΡ‚ΠΎΠ²ΠΎΠ΅ Π˜Π›Π˜

Π˜Π›Π˜ (OR), ΠΎΠ½ΠΎ ΠΆΠ΅ β€œΠ»ΠΎΠ³ΠΈΡ‡Π΅ΡΠΊΠΎΠ΅ слоТСниС”, выполняСтся ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ | ΠΈΠ»ΠΈ or ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅:

ОсновноС ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π˜Π›Π˜ – установка Π±ΠΈΡ‚Π° Π² Π±Π°ΠΉΡ‚Π΅:

Π’Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ составной ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ |=

Π’Ρ‹ ΡƒΠΆΠ΅ поняли, Ρ‡Ρ‚ΠΎ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ Π½Π° Π½ΡƒΠΆΠ½Ρ‹Π΅ Π±ΠΈΡ‚Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ Π»ΡŽΠ±Ρ‹ΠΌ ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΌ способом: Π² Π±ΠΈΠ½Π°Ρ€Π½ΠΎΠΌ Π²ΠΈΠ΄Π΅ (0b00000001 – Π½ΡƒΠ»Π΅Π²ΠΎΠΉ Π±ΠΈΡ‚), Π² дСсятичном Π²ΠΈΠ΄Π΅ (16 – Ρ‡Π΅Ρ‚Π²Ρ‘Ρ€Ρ‚Ρ‹ΠΉ Π±ΠΈΡ‚) ΠΈΠ»ΠΈ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ макросов bit() ΠΈΠ»ΠΈ _BV() ( bit(7) Π΄Π°Ρ‘Ρ‚ 128 ΠΈΠ»ΠΈ 0b10000000, _BV(7) Π΄Π΅Π»Π°Π΅Ρ‚ Ρ‚ΠΎ ΠΆΠ΅ самоС)

Π‘ΠΈΡ‚ΠΎΠ²ΠΎΠ΅ НЕ

Битовая опСрация НЕ (NOT) выполняСтся ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ

ΠΈ просто ΠΈΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ Π±ΠΈΡ‚:

Π’Π°ΠΊΠΆΠ΅ ΠΎΠ½Π° ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π±Π°ΠΉΡ‚:

Π‘ΠΈΡ‚ΠΎΠ²ΠΎΠ΅ ΠΈΡΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰Π΅Π΅ Π˜Π›Π˜

Битовая опСрация ΠΈΡΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰Π΅Π΅ Π˜Π›Π˜ (XOR) выполняСтся ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ ^ ΠΈΠ»ΠΈ xor ΠΈ Π΄Π΅Π»Π°Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅:

Данная опСрация ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для инвСртирования состояния ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ Π±ΠΈΡ‚Π°:

Π’ΠΎ Π΅ΡΡ‚ΡŒ ΠΌΡ‹ взяли Π±ΠΈΡ‚ β„–7 Π² Π±Π°ΠΉΡ‚Π΅ 0b11001100 ΠΈ ΠΏΠ΅Ρ€Π΅Π²Π΅Ρ€Π½ΡƒΠ»ΠΈ Π΅Π³ΠΎ Π² 0, ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΎΡΡŒ 0b01001100, ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ Π±ΠΈΡ‚Ρ‹ Π½Π΅ Ρ‚Ρ€ΠΎΠ³Π°Π»ΠΈ.

Π‘ΠΈΡ‚ΠΎΠ²Ρ‹ΠΉ сдвиг

Π‘ΠΈΡ‚ΠΎΠ²Ρ‹ΠΉ сдвиг Π΄Π΅Π»Π°Π΅Ρ‚ Π½Π΅ Ρ‡Ρ‚ΠΎ ΠΈΠ½ΠΎΠ΅, ΠΊΠ°ΠΊ ΡƒΠΌΠ½ΠΎΠΆΠ°Π΅Ρ‚ ΠΈΠ»ΠΈ Π΄Π΅Π»ΠΈΡ‚ Π±Π°ΠΉΡ‚ Π½Π° 2 Π² стСпСни. Π”Π°, это опСрация дСлСния, Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‰Π°ΡΡΡ Π·Π° ΠΎΠ΄ΠΈΠ½ Ρ‚Π°ΠΊΡ‚ процСссора! К этому ΠΌΡ‹ Π΅Ρ‰Ρ‘ вСрнёмся Π½ΠΈΠΆΠ΅. ΠŸΠΎΡΠΌΠΎΡ‚Ρ€ΠΈΡ‚Π΅ Π½Π° Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° сдвига ΠΈ сравнитС Π΅Ρ‘ с макросами bit() ΠΈ _BV() :

Π’ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ-Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ

Вспомним ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΈΠ· ΠΏΡƒΠ½ΠΊΡ‚Π° ΠΏΡ€ΠΎ Π±ΠΈΡ‚ΠΎΠ²ΠΎΠ΅ Π˜Π›Π˜, ΠΏΡ€ΠΎ установку Π½ΡƒΠΆΠ½ΠΎΠ³ΠΎ Π±ΠΈΡ‚Π°. Π’ΠΎΡ‚ эти Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ ΠΊΠΎΠ΄Π° Π΄Π΅Π»Π°ΡŽΡ‚ ΠΎΠ΄Π½ΠΎ ΠΈ Ρ‚ΠΎ ΠΆΠ΅:

Как насчёт установки Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Π±ΠΈΡ‚ сразу?

Или ΠΏΡ€ΠΈΡ†Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π±ΠΈΡ‚? Π’ΡƒΡ‚ Ρ‡ΡƒΡ‚ΡŒ ΠΏΠΎ-Π΄Ρ€ΡƒΠ³ΠΎΠΌΡƒ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ &= ΠΈ

Π’Ρ‹ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ нСсколько Π±ΠΈΡ‚ сразу? ΠŸΠΎΠΆΠ°Π»ΡƒΠΉΡΡ‚Π°!

ИмСнно Ρ‚Π°ΠΊΠΈΠ΅ конструкции Π²ΡΡ‚Ρ€Π΅Ρ‡Π°ΡŽΡ‚ΡΡ Π² ΠΊΠΎΠ΄Π΅ высокого уровня ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°Ρ…, ΠΈΠΌΠ΅Π½Π½ΠΎ Ρ‚Π°ΠΊ производится Ρ€Π°Π±ΠΎΡ‚Π° с рСгистрами ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°. ВСрнёмся ΠΊ устройству Ардуиновских макросов:

Π― Π΄ΡƒΠΌΠ°ΡŽ, ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ излишни: макросы состоят ΠΈΠ· Ρ‚Π΅Ρ… ΠΆΠ΅ элСмСнтарных Π±ΠΈΡ‚ΠΎΠ²Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ ΠΈ сдвигов!

БыстрыС вычислСния

Как я ΡƒΠΆΠ΅ Π³ΠΎΠ²ΠΎΡ€ΠΈΠ», Π±ΠΈΡ‚ΠΎΠ²Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ – самыС быстрыС. Если трСбуСтся максимальная ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ вычислСний – ΠΈΡ… ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ ΠΏΠΎΠ΄ΠΎΠ³Π½Π°Ρ‚ΡŒ ΠΏΠΎΠ΄ β€œΡΡ‚Π΅ΠΏΠ΅Π½ΠΈ двойки”, Π½ΠΎ ΠΈΠ½ΠΎΠ³Π΄Π° компилятор Π΄Π΅Π»Π°Π΅Ρ‚ это сам, ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ смотри Π² ΡƒΡ€ΠΎΠΊΠ΅ ΠΏΡ€ΠΎ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡŽ ΠΊΠΎΠ΄Π°. Рассмотрим Π±Π°Π·ΠΎΠ²Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ:

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: рассмотрСнныС Π²Ρ‹ΡˆΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ с цСлочислСнными Ρ‚ΠΈΠΏΠ°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ…!

Экономия памяти

ΠŸΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ Π±ΠΈΡ‚ΠΎΠ²Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠΎΠ½ΠΎΠΌΠΈΡ‚ΡŒ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ памяти, пакуя Π΄Π°Π½Π½Ρ‹Π΅ Π² Π±Π»ΠΎΠΊΠΈ. НапримСр, пСрСмСнная Ρ‚ΠΈΠΏΠ° boolean Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ Π² памяти 8 Π±ΠΈΡ‚, хотя ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ 0 ΠΈ 1. Π’ ΠΎΠ΄ΠΈΠ½ Π±Π°ΠΉΡ‚ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΠ°ΠΊΠΎΠ²Π°Ρ‚ΡŒ 8 логичСских ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π²ΠΎΡ‚ Ρ‚Π°ΠΊ:

Π•Ρ‰Ρ‘ интСрСсный ΠΏΡ€ΠΈΠΌΠ΅Ρ€ сТатия

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΌΡ‹ отброс ΠΈΠ»ΠΈ Ρƒ красного ΠΈ синСго младшиС (ΠΏΡ€Π°Π²Ρ‹Π΅) Π±ΠΈΡ‚Ρ‹, Π² этом ΠΈ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ сТатиС. Π§Π΅ΠΌ большС Π±ΠΈΡ‚ΠΎΠ² ΠΎΡ‚Π±Ρ€ΠΎΡˆΠ΅Π½ΠΎ – Ρ‚Π΅ΠΌ ΠΌΠ΅Π½Π΅Π΅ Ρ‚ΠΎΡ‡Π½ΠΎ получится β€œΡ€Π°Π·ΠΆΠ°Ρ‚ΡŒβ€ число. НапримСр сТимали число 0b10101010 (170 Π² дСсятичной) Π½Π° Ρ‚Ρ€ΠΈ Π±ΠΈΡ‚Π°, ΠΏΡ€ΠΈ сТатии ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈ 0b10101000, Ρ‚.Π΅. потСряли Ρ‚Ρ€ΠΈ ΠΌΠ»Π°Π΄ΡˆΠΈΡ… Π±ΠΈΡ‚Π°, ΠΈ Π² дСсятичной ΡƒΠΆΠ΅ получится 168. Для ΡƒΠΏΠ°ΠΊΠΎΠ²ΠΊΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π±ΠΈΡ‚ΠΎΠ²Ρ‹ΠΉ сдвиг ΠΈ маска, Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΌΡ‹ Π±Π΅Ρ€Ρ‘ΠΌ ΠΏΠ΅Ρ€Π²Ρ‹Π΅ ΠΏΡΡ‚ΡŒ Π±ΠΈΡ‚ΠΎΠ² красного, ΡˆΠ΅ΡΡ‚ΡŒ Π·Π΅Π»Ρ‘Π½ΠΎΠ³ΠΎ ΠΈ ΠΏΡΡ‚ΡŒ синСго, ΠΈ Π·Π°Π΄Π²ΠΈΠ³Π°Π΅ΠΌ Π½Π° Π½ΡƒΠΆΠ½Ρ‹Π΅ мСста Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚ΠΈΡ€ΡƒΡŽΡ‰Π΅ΠΉ 16-Π±ΠΈΡ‚Π½ΠΎΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ. Всё, Ρ†Π²Π΅Ρ‚ сТат ΠΈ Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ. Для распаковки ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ обратная опСрация: Π²Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ маски Π½ΡƒΠΆΠ½Ρ‹Π΅ Π±ΠΈΡ‚Ρ‹ ΠΈ сдвигаСм ΠΈΡ… ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ Π² Π±Π°ΠΉΡ‚:

Как ΠΈ Π² ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ со свСтодиодами, ΠΌΡ‹ просто Π±Ρ€Π°Π»ΠΈ Π½ΡƒΠΆΠ½Ρ‹Π΅ Π±ΠΈΡ‚Ρ‹ ( Π² этом случаС младшиС Π΄Π²Π°, 0b11 ) ΠΈ сдвигали ΠΈΡ… Π½Π° Π½ΡƒΠΆΠ½ΠΎΠ΅ расстояниС. Для распаковки Π΄Π΅Π»Π°Π΅ΠΌ Π² ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΌ порядкС:

И ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ наши Π±Π°ΠΉΡ‚Ρ‹. Π’Π°ΠΊΠΆΠ΅ маску ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π½Π° Π±ΠΎΠ»Π΅Π΅ ΡƒΠ΄ΠΎΠ±Π½ΡƒΡŽ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ запись, Π·Π°Π΄Π²ΠΈΠ½ΡƒΠ² 0b11 Π½Π° Π½ΡƒΠΆΠ½ΠΎΠ΅ расстояниС:

Ну ΠΈ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ, прослСдив Π·Π°ΠΊΠΎΠ½ΠΎΠΌΠ΅Ρ€Π½ΠΎΡΡ‚ΡŒ, ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ для сСбя Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΈΠ»ΠΈ макрос чтСния ΠΏΠ°ΠΊΠ΅Ρ‚Π°:

Π“Π΄Π΅ x это ΠΏΠ°ΠΊΠ΅Ρ‚, Π° y – порядковый Π½ΠΎΠΌΠ΅Ρ€ Π·Π°ΠΏΠ°ΠΊΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ значСния. Π’Ρ‹Π²Π΅Π΄Π΅ΠΌ посмотрим:

β€œΠ’Ρ€ΡŽΠΊΠΈβ€ с Π±ΠΈΡ‚Π°ΠΌΠΈ

На Π±ΠΈΡ‚ΠΎΠ²Ρ‹Ρ… опСрациях ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΎΡ‡Π΅Π½ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ всСго интСрСсного, ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΎΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‡Π΅Π½ΡŒ быстро ΠΈ Π·Π°Π½ΠΈΠΌΠ°Ρ‚ΡŒ ΠΌΠ°Π»ΠΎ мСста. ΠžΠ³Ρ€ΠΎΠΌΠ½Ρ‹ΠΉ список Π±ΠΈΡ‚ΠΎΠ²Ρ‹Ρ… Ρ‚Ρ€ΡŽΠΊΠΎΠ² ΠΈ Ρ…Π°ΠΊΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π² этой ΡΡ‚Π°Ρ‚ΡŒΠ΅, ΠΈΡ… Ρ‚Π°ΠΌ ΠΎΡ‡Π΅Π½ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ ΠΈ всС с ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°ΠΌΠΈ. Π•ΡΡ‚ΡŒ Π΅Ρ‰Ρ‘ ΠΎΠ΄ΠΈΠ½ нСбольшой сборник самых простых ΠΈ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Ρ… Ρ…Π°ΠΊΠΎΠ² Π²ΠΎΡ‚ здСсь (английский). Π•Π³ΠΎ я ΠΏΠ΅Ρ€Π΅Π²Ρ‘Π», смотритС Π½ΠΈΠΆΠ΅ ΠΏΠΎΠ΄ спойлСром. Π”Ρ€ΡƒΠ³ΠΎΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π° (ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π½Π΅ всС Ρ‚Ρ€ΡŽΠΊΠΈ) ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ здСсь.

ΠŸΠ΅Ρ€Π΅ΠΌΠΎΡ‚ΠΊΠ° Π±ΠΈΡ‚Π°

Π¦Π΅Π»Ρ‹Π΅

Установка n Π³ΠΎ Π±ΠΈΡ‚Π°

Π’Ρ‹ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ n Π³ΠΎ Π±ΠΈΡ‚Π°

Π˜Π½Π²Π΅Ρ€ΡΠΈΡ n Π³ΠΎ Π±ΠΈΡ‚Π°

ΠžΠΊΡ€ΡƒΠ³Π»Π΅Π½ΠΈΠ΅ Π΄ΠΎ блиТайшСй стСпСни Π΄Π²ΠΎΠΉΠΊΠΈ

ΠžΠΊΡ€ΡƒΠ³Π»Π΅Π½ΠΈΠ΅ Π²Π½ΠΈΠ·

ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ максимального Ρ†Π΅Π»ΠΎΠ³ΠΎ

ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ минимального Ρ†Π΅Π»ΠΎΠ³ΠΎ

ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ максимального long

Π£ΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° 2

Π”Π΅Π»Π΅Π½ΠΈΠ΅ Π½Π° 2

Π£ΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° m ΡƒΡŽ ΡΡ‚Π΅ΠΏΠ΅Π½ΡŒ Π΄Π²ΠΎΠΉΠΊΠΈ

Π”Π΅Π»Π΅Π½ΠΈΠ΅ Π½Π° m ΡƒΡŽ ΡΡ‚Π΅ΠΏΠ΅Π½ΡŒ Π΄Π²ΠΎΠΉΠΊΠΈ

ΠžΡΡ‚Π°Ρ‚ΠΎΠΊ ΠΎΡ‚ дСлСния

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° равСнства

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π½Π° Ρ‡Ρ‘Ρ‚Π½ΠΎΡΡ‚ΡŒ (ΠΊΡ€Π°Ρ‚Π½ΠΎΡΡ‚ΡŒ 2)

ОбмСн значСниями

ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½ΠΎΠ³ΠΎ значСния

ΠœΠ°ΠΊΡΠΈΠΌΡƒΠΌ ΠΈΠ· Π΄Π²ΡƒΡ…

ΠœΠΈΠ½ΠΈΠΌΡƒΠΌ ΠΈΠ· Π΄Π²ΡƒΡ…

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π½Π° ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΉ Π·Π½Π°ΠΊ

Π‘ΠΌΠ΅Π½Π° Π·Π½Π°ΠΊΠ°

Π’Π΅Ρ€Π½Ρ‘Ρ‚ 2 n

ЯвляСтся Π»ΠΈ число ΡΡ‚Π΅ΠΏΠ΅Π½ΡŒΡŽ 2

ΠžΡΡ‚Π°Ρ‚ΠΎΠΊ ΠΎΡ‚ дСлСния Π½Π° 2 n Π½Π° m

Π‘Ρ€Π΅Π΄Π½Π΅Π΅ арифмСтичСскоС

ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ m Ρ‹ΠΉ Π±ΠΈΡ‚ ΠΈΠ· n (ΠΎΡ‚ младшСго ΠΊ ΡΡ‚Π°Ρ€ΡˆΠ΅ΠΌΡƒ)

ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ m Ρ‹ΠΉ Π±ΠΈΡ‚ ΠΈΠ· n (ΠΎΡ‚ ΡΡ‚Π°Ρ€ΡˆΠ΅Π³ΠΎ ΠΊ ΠΌΠ»Π°Π΄ΡˆΠ΅ΠΌΡƒ)

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ Π»ΠΈ n Ρ‹ΠΉ Π±ΠΈΡ‚

Π’Ρ‹Π΄Π΅Π»Π΅Π½ΠΈΠ΅ самого ΠΏΡ€Π°Π²ΠΎΠ³ΠΎ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π½ΠΎΠ³ΠΎ Π±ΠΈΡ‚Π°

Π’Ρ‹Π΄Π΅Π»Π΅Π½ΠΈΠ΅ самого ΠΏΡ€Π°Π²ΠΎΠ³ΠΎ Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π΅Π½Π½ΠΎΠ³ΠΎ Π±ΠΈΡ‚Π°

Π’Ρ‹Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΏΡ€Π°Π²ΠΎΠ³ΠΎ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π½ΠΎΠ³ΠΎ Π±ΠΈΡ‚Π°

Π’Ρ‹Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΏΡ€Π°Π²ΠΎΠ³ΠΎ Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π΅Π½Π½ΠΎΠ³ΠΎ Π±ΠΈΡ‚Π°

n + 1

n – 1

ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ значСния

if (x == a) x = b; if (x == b) x = a;

ΠŸΠΎΠΌΠ΅Π½ΡΡ‚ΡŒ смСТныС Π±ΠΈΡ‚Ρ‹

Different rightmost bit of numbers m & n

Common rightmost bit of numbers m & n

ДСсятичныС Π΄Ρ€ΠΎΠ±ΠΈ

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: Ρ…Π°ΠΊΠΈ с float ΠΌΠΎΠ³ΡƒΡ‚ Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π° Ардуино! Π Π°Π·Π±ΠΈΡ‚ΡŒ float Π² массив Π±ΠΈΡ‚ (unsigned uint32_t)

Π’Π΅Ρ€Π½ΡƒΡ‚ΡŒ массив Π±ΠΈΡ‚ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ Π² float

Быстрый ΠΎΠ±Ρ€Π°Ρ‚Π½Ρ‹ΠΉ ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½Ρ‹ΠΉ ΠΊΠΎΡ€Π΅Π½ΡŒ

Быстрый n Ρ‹ΠΉ ΠΊΠΎΡ€Π΅Π½ΡŒ ΠΈΠ· Ρ†Π΅Π»ΠΎΠ³ΠΎ числа

Быстрая ΡΡ‚Π΅ΠΏΠ΅Π½ΡŒ

Быстрый Π½Π°Ρ‚ΡƒΡ€Π°Π»ΡŒΠ½Ρ‹ΠΉ Π»ΠΎΠ³Π°Ρ€ΠΈΡ„ΠΌ

Быстрая экспонСнта

Π‘Ρ‚Ρ€ΠΎΠΊΠΈ

ΠšΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π² Π½ΠΈΠΆΠ½ΠΈΠΉ рСгистр

ΠšΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π² Π²Π΅Ρ€Ρ…Π½ΠΈΠΉ рСгистр

Π˜Π½Π²Π΅Ρ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ рСгистр

ΠŸΠΎΠ·ΠΈΡ†ΠΈΡ Π±ΡƒΠΊΠ²Ρ‹ Π² Π°Π»Ρ„Π°Π²ΠΈΡ‚Π΅ (Π°Π½Π³Π»)

ΠŸΠΎΠ·ΠΈΡ†ΠΈΡ большой Π±ΡƒΠΊΠ²Ρ‹ Π² Π°Π»Ρ„Π°Π²ΠΈΡ‚Π΅ (Π°Π½Π³Π»)

ΠŸΠΎΠ·ΠΈΡ†ΠΈΡ строчной Π±ΡƒΠΊΠ²Ρ‹ Π² Π°Π»Ρ„Π°Π²ΠΈΡ‚Π΅ (Π°Π½Π³Π»)

Π”Ρ€ΡƒΠ³ΠΎΠ΅

Быстрая конвСртация Ρ†Π²Π΅Ρ‚Π° R5G5B5 Π² R8G8B8

ΠŸΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ

Π§Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ ΠΏΠ»ΠΎΠ΄ΠΈΡ‚ΡŒ скобки, Π½ΡƒΠΆΠ½ΠΎ Π·Π½Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ. Π’ C++ ΠΎΠ½ Ρ‚Π°ΠΊΠΎΠΉ:

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

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

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