
рдореИрдВ рдХрд╣рд╛рдирд┐рдпреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рд░реА рд░рдЦреВрдВрдЧрд╛ рдХрд┐ рдХреИрд╕реЗ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдиреЗ рдмрд┐рдирд╛ рднреА рдХрд┐рдирд╛рд░реЗ рдкрд░ рдШреВрдорддреЗ рд╣реИрдВред рдЖрдЗрдП рдкрд╛рд░реА рд╕рдВрдЪрд╛рд▓рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░реЗрдВ <<, >> рд╢рд┐рдлреНрдЯ рдСрдкрд░реЗрдЯрд░реЛрдВ рдХреЗ рд╕рд┐рджреНрдзрд╛рдВрдд рд╕реНрдкрд╖реНрдЯ рд╣реИрдВ рдФрд░ рдХрдИ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЛ рдпрд╣ рднреА рдирд╣реАрдВ рдкрддрд╛ рд╣реИ рдХрд┐ C / C ++ рдорд╛рдирдХ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдЙрдирдХреЗ рдЙрдкрдпреЛрдЧ рд╕реЗ рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рдпрд╛ рдЕрдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╡реНрдпрд╡рд╣рд╛рд░ (рдЕрдирд┐рд░реНрдзрд╛рд░рд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ / рдЕрдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╡реНрдпрд╡рд╣рд╛рд░) рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
рдкрд┐рдЫрд▓реЗ рд▓реЗрдЦ рдпрд╣рд╛рдБ рдЙрдкрд▓рдмреНрдз рд╣реИрдВ: [
рез ], [
реи ]ред
рдРрддрд┐рд╣рд╛рд╕рд┐рдХ рднреНрд░рдордг
рд╢реБрд░реБрдЖрдд рдореЗрдВ, рдереЛрдбрд╝рд╛ рдЗрддрд┐рд╣рд╛рд╕ред рдХрд┐рд╕реА рднреА рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЛ рдмрд┐рдЯ рд╢рд┐рдлреНрдЯрд┐рдВрдЧ рдСрдкрд░реЗрд╢рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╕реНрдкрд╖реНрдЯ рд╣реИред рдЬрд▓реНрджреА рдпрд╛ рдмрд╛рдж рдореЗрдВ, рд╣рд░ рдХрд┐рд╕реА рдХреЛ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдмрд┐рдЯреНрд╕ рдФрд░ рдмрд┐рдЯ рдорд╛рд╕реНрдХ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдХрддрд░рдиреА рдСрдкрд░реЗрд╢рди рдмрд╣реБрдд рдЕрдзрд┐рдХ рд▓реЛрдХрдкреНрд░рд┐рдп рд╣реИрдВ рдЬрд┐рддрдирд╛ рдЙрдиреНрд╣реЗрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдерд╛ред рдХрд╛рд░рдг рдпрд╣ рд╣реИ рдХрд┐ рдкрд╛рд░рд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЖрдк рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЛ рджреЛ рдХреА рд╢рдХреНрддрд┐ рд╕реЗ рдЧреБрдгрд╛ рдФрд░ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдСрдкрд░реЗрд╢рди "рдПрдХреНрд╕ << 3" рдЧреБрдгрд╛ рдПрдХреНрд╕ рджреНрд╡рд╛рд░рд╛ 8. рдЧреБрдгрди рдФрд░ рд╡рд┐рднрд╛рдЬрди рдХреА рдЗрд╕ рдкрджреНрдзрддрд┐ рдХрд╛ рд▓рд╛рдн рдЕрддреАрдд рдореЗрдВ рдЙрдирдХреЗ рдХрд╛рдо рдХреА рдЧрддрд┐ рдереАред
рдЕрдм рдореИрдВрдиреЗ рдПрдХ рдзреВрд▓ рднрд░реА рд╢реЗрд▓реНрдл рд╕реЗ рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреЗ рд▓рд┐рдП рдХреЛрдбрд╛рдВрддрд░рдХ рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЗ рд╡рд┐рд╡рд░рдг рдХреЗ рд╕рд╛рде рдПрдХ рдХрд┐рддрд╛рдм рд▓реА, рдЬреЛ 8086 рд╕реЗ рд╢реБрд░реВ рд╣реБрдИ рдФрд░ 80486 рдХреЗ рд╕рд╛рде рд╕рдорд╛рдкреНрдд рд╣реБрдИред рдФрд░ рдореБрдЭреЗ рд╡рд┐рднрд┐рдиреНрди рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдШрдбрд╝реА рдЪрдХреНрд░реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдкрд░ рдПрдХ рддрд╛рд▓рд┐рдХрд╛ рдорд┐рд▓реАред
8086 рдкреНрд░реЛрд╕реЗрд╕рд░ рдкрд░ MUL рдЗрдВрд╕реНрдЯреНрд░рдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдореЗрдореЛрд░реА рд╕реЗрд▓ рджреНрд╡рд╛рд░рд╛ 16-рдмрд┐рдЯ рд░рдЬрд┐рд╕реНрдЯрд░ рдХреЛ рдЧреБрдгрд╛ рдХрд░рдирд╛ рд▓рдЧрднрдЧ 124-139 рдШрдбрд╝реА рдЪрдХреНрд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ!
8086 рдкреНрд░реЛрд╕реЗрд╕рд░ рдкрд░ SHL рдирд┐рд░реНрджреЗрд╢ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ N рдкрджреЛрдВ рджреНрд╡рд╛рд░рд╛ 16-рдмрд┐рдЯ рд░рдЬрд┐рд╕реНрдЯрд░ рдХреЛ рд╢рд┐рдлреНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП 8 + 4 * N рдЪрдХреНрд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдпрд╣реА рд╣реИ, рд╕рдмрд╕реЗ рдЦрд░рд╛рдм рд╕реНрдерд┐рддрд┐ рдореЗрдВ, 72 рдЙрдкрд╛рдп рдкреНрд░рд╛рдкреНрдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред
рдмрд┐рдЯ рд╕рдВрдЪрд╛рд▓рди рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп рд╡рд┐рднрд┐рдиреНрди рдЪрд╛рд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЕрдВрдХрдЧрдгрд┐рддреАрдп рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпреЛрдВ рдХреА рдЧрдгрдирд╛ рдХрд░рддреЗ рд╕рдордп рдорд╣рддреНрд╡рдкреВрд░реНрдг рддреНрд╡рд░рдг рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рд╕рдВрднрд╡ рдерд╛ред рдпрд╣ рд╢реБрд░реБрдЖрдд рдореЗрдВ, рдХреЛрдбрд╛рдВрддрд░рдХ рдореЗрдВ, рдлрд┐рд░ C рдФрд░ C ++ рдореЗрдВ, рдкрд╛рд▓реА рдХреЗ рд╡реНрдпрд╛рдкрдХ рдЙрдкрдпреЛрдЧ рдХрд╛ рдХрд╛рд░рдг рдерд╛ред рдкрд╣рд▓реЗ C / C ++ рдХрдВрдкрд╛рдЗрд▓рд░ рд╕рд░рд▓ рдереЗред рдПрдХ рд╡реНрдпрдХреНрддрд┐ рд╕рдВрдХрд▓рдХ рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдмрддрд╛рдХрд░ рдЧрддрд┐ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЧреБрдгрди рдпрд╛ рд╡рд┐рднрд╛рдЬрди рдХреЗ рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЗ рдмрдЬрд╛рдп рд╢рд┐рдлреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдпрд╣рд╛рдВ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреЗ рд╡рд┐рдХрд╛рд╕ рдХреЗ рд╕рд╛рде, рдкрд╛рд░рд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд╛рднреЛрдВ рдХреЛ рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдмрдирд╛рдП рд░рдЦрд╛ рдЧрдпрд╛ рд╣реИред 80486 рдкреНрд░реЛрд╕реЗрд╕рд░ рдореЗрдВ, рдЧреБрдгрд╛ рдиреЗ рд▓рдЧрднрдЧ 26 рдШрдбрд╝реА рдЪрдХреНрд░ рд▓рд┐рдПред рдпрд╣ рдмрд╣реБрдд рдмреЗрд╣рддрд░ рд▓рдЧрддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдкрд╛рд░реА рдХреЗрд╡рд▓ 3 рдЙрдкрд╛рдп рдХрд░рдиреЗ рд▓рдЧреА рдФрд░ рдлрд┐рд░ рд╕реЗ рдЧреБрдгрд╛ рд╕реЗ рдЕрдзрд┐рдХ рдЖрдХрд░реНрд╖рдХ рдереАред
рд╕реМрднрд╛рдЧреНрдп рд╕реЗ, рдЕрдзрд┐рдХрд╛рдВрд╢ рднрд╛рдЧ рдХреЗ рд▓рд┐рдП рдпреЗ рдордЬрдмреВрд░ рдЕрдиреБрдХреВрд▓рди рдЧреБрдордирд╛рдореА рдореЗрдВ рдбреВрдм рдЧрдП рд╣реИрдВред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдХрдВрдкрд╛рдЗрд▓рд░ рд╕реНрдорд╛рд░реНрдЯ рд╣реЛ рдЧрдП рд╣реИрдВ рдФрд░ рдЕрдВрдХрдЧрдгрд┐рддреАрдп рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпреЛрдВ рдХреА рдЧрдгрдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЗ рдЗрд╖реНрдЯрддрдо рд╕реЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рджреВрд╕рд░реЗ, рдкреНрд░реЛрд╕реЗрд╕рд░ рдореЗрдВ рднреА рдЬрдмрд░рджрд╕реНрдд рдмрджрд▓рд╛рд╡ рдЖрдпрд╛ рд╣реИред рдкрд╛рдЗрдкрд▓рд╛рдЗрди, рд╕рдВрдХреНрд░рдордг рдХреА рднрд╡рд┐рд╖реНрдпрд╡рд╛рдгреА, рдирд╛рдо рдмрджрд▓рдиреЗ рдХрд╛ рдкрдВрдЬреАрдХрд░рдг рдФрд░ рдмрд╣реБрдд рдХреБрдЫ рд╣реИрдВред рдЗрд╕рд▓рд┐рдП, рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдЕрдм рдпрд╣ рдХрд╣рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рд╣реИ рдХрд┐ рдПрдХ рдпрд╛ рдХрд┐рд╕реА рдЕрдиреНрдп рдирд┐рд░реНрджреЗрд╢ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рдХрд┐рддрдирд╛ рд╕рдордп рд▓рдЧреЗрдЧрд╛ред рд▓реЗрдХрд┐рди рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ рдпрджрд┐ рдХреЛрдб рдХреБрдЫ рд╕реНрдерд╛рдиреЛрдВ рдкрд░ рд╕рд╣реА рдирд╣реАрдВ рд╣реИ, рддреЛ рдЗрд╕ рдкрд░ рднреА рдзреНрдпрд╛рди рдирд╣реАрдВ рджрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдкреНрд░реЛрд╕реЗрд╕рд░ рдорд╛рдЗрдХреНрд░реЛ-рдирд┐рд░реНрджреЗрд╢реЛрдВ рдореЗрдВ рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЛ рддреЛрдбрд╝ рджреЗрдЧрд╛ рдФрд░ рдЙрдиреНрд╣реЗрдВ рд╕рдорд╛рдирд╛рдВрддрд░ рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджреЗрдЧрд╛ред рд╕рдЪ рдХрд╣реВрдВ, рддреЛ рдореБрдЭреЗ рд╕рдордЭ рдирд╣реАрдВ рдЖрдпрд╛ рдХрд┐ рд╡рд╣рд╛рдВ рдЕрдм рд╕рдм рдХреИрд╕реЗ рд╣реЛ рд░рд╣рд╛ рд╣реИред рдореБрдЭреЗ рдПрд╣рд╕рд╛рд╕ рд╣реБрдЖ рдХрд┐ рдЗрдВрдЯреЗрд▓ рдкреЗрдВрдЯрд┐рдпрдо рдкреНрд░реЛрд╕реЗрд╕рд░ рд╕реЗ рд╢реБрд░реВ рд╣реЛрдиреЗ рд╡рд╛рд▓реА рдкреЗрдЪреАрджрдЧрд┐рдпреЛрдВ рдХреЛ рд╕рдордЭрдирд╛ рд╡реНрдпрд░реНрде рд╣реИред рдФрд░ рдЙрдиреНрд╣реЛрдВрдиреЗ рдирд┐рд╖реНрдХрд░реНрд╖ рдирд┐рдХрд╛рд▓рд╛ рдХрд┐ рдЖрдкрдХреЛ рдпрд╣ рдирд╣реАрдВ рд╕реЛрдЪрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдЖрдк рдмреЗрд╣рддрд░ рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдЕрдиреБрдХреВрд▓рди рдХреЛрдб рдХреИрд╕реЗ рд▓рд┐рдЦрдирд╛ рд╣реИ, рдЬрд╣рд╛рдВ рднреА рд╕рдВрднрд╡ рд╣реЛ, рдкрд╛рд▓реА рдФрд░ рдмрд┐рдЯ рд╕рдВрдЪрд╛рд▓рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред рдпрд╣ рдЗрд╕ рддрдереНрдп рд╕реЗ рдмрд╣реБрдд рджреВрд░ рд╣реИ рдХрд┐ рдирддреАрдЬрддрди, рдХреЛрдб рдХрдВрдкрд╛рдЗрд▓рд░ рдореЗрдВ рдСрдкреНрдЯрд┐рдорд╛рдЗрдЬрд╝рд░ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рддреЗрдЬрд╝ рд╣реЛрдЧрд╛ред рд▓реЗрдХрд┐рди рдЖрдк рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдХрд╣ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХрд╛рд░реНрдпрдХреНрд░рдо рднреНрд░рдорд┐рдд рдФрд░ рд╕рдордЭрдиреЗ рдореЗрдВ рдореБрд╢реНрдХрд┐рд▓ рд╣реЛ рдЬрд╛рдПрдЧрд╛ред
рдиреЛрдЯред рдЙрдкрд░реЛрдХреНрдд рдХрд╛ рдорддрд▓рдм рдпрд╣ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдмрд┐рдЯ рд╕рдВрдЪрд╛рд▓рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдЕрдм рдлрд╛рдпрджреЗрдордВрдж рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдХрдИ рд░реЛрдЪрдХ рдФрд░ рдЙрдкрдпреЛрдЧреА рдЯреЛрдЯрдХреЗ рд╣реИрдВ [
3 ]ред рдореБрдЦреНрдп рдмрд╛рдд рдЗрд╕рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рд╣реЛрдирд╛ рд╣реИред
рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░
рдпрд╣ рд╕рдм рдЗрд╕ рддрдереНрдп рд╕реЗ рд╢реБрд░реВ рд╣реБрдЖ рдХрд┐ рдореИрдВрдиреЗ рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ [
4 ] рдФрд░ рдЕрдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╡реНрдпрд╡рд╣рд╛рд░ [
5 ] рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдкреАрд╡реАрдПрд╕-рд╕реНрдЯреВрдбрд┐рдпреЛ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдореЗрдВ рдЪреЗрддрд╛рд╡рдирд┐рдпреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдмрдврд╝рд╛рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред рдЬрд▓реНрджреА рдФрд░ рдмрд╕, рдПрдХ рдирд┐рдпрдо рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдЬреЛ рд╢рд┐рдлреНрдЯ рдСрдкрд░реЗрд╢рди рдХреЗ рдЧрд▓рдд рдЙрдкрдпреЛрдЧ рдХрд╛ рдкрддрд╛ рдЪрд▓рд╛ред рдЙрд╕рдХреЗ рдмрд╛рдж рдореБрдЭреЗ рд░реБрдХ рдХрд░ рд╕реЛрдЪрдирд╛ рдкрдбрд╝рд╛ред
рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдкрд╛рд▓реА рдХреЗ рдмрд╣реБрдд рд╢реМрдХреАрди рд╣реИрдВред рдФрд░ рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рд╣рд░ рд╕рдВрднрд╡ рддрд░реАрдХреЗ рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдЕрдХреНрд╕рд░ рдорд╛рдирдХ рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЗ рд▓рд┐рдП рдЕрдЧреНрд░рдгреА рд╣реЛрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рд╕рд┐рджреНрдзрд╛рдВрдд рдПрдХ рдмрд╛рдд рд╣реИ, рдФрд░ рдЕрднреНрдпрд╛рд╕ рдПрдХ рдФрд░ рд╣реИред рдХреНрдпрд╛ рдпрд╣ рдЙрд╕ рдХреЛрдб рдкрд░ рд╢рдкрде рд▓реЗрдиреЗ рдХрд╛ рдХреЛрдИ рдорддрд▓рдм рд╣реИ рдЬреЛ рджрд╢рдХреЛрдВ рддрдХ рдИрдорд╛рдирджрд╛рд░реА рд╕реЗ рдХрд╛рдо рдХрд┐рдпрд╛ рд╣реИ рдФрд░ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрдХрд▓рдХ рдмрдЪ рдЧрдП рд╣реИрдВ? рдпрд╣ рдПрдХ рдХрдард┐рди рдкреНрд░рд╢реНрди рд╣реИред рдЗрд╕ рддрдереНрдп рдХреЗ рдмрд╛рд╡рдЬреВрдж рдХрд┐ рдХреЛрдб рдЧрд▓рдд рд╣реИ, рдХрдВрдкрд╛рдЗрд▓рд░ рдХрд┐рд╕реА рддрд░рд╣ рдХреЗ рдЕрдирд╕реНрдкреЛрдХ рд╕рдордЭреМрддреЗ рдХрд╛ рдкрд╛рд▓рди рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рдПрдХ рд╕рдорд╛рди рддрд░реАрдХреЗ рд╕реЗ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рддреЗ рд╣реИрдВред
рдмрд╣реБрдд рд╕реЛрдЪрдиреЗ рдХреЗ рдмрд╛рдж, рдореИрдВрдиреЗ рдЕрднреА рднреА рдкреАрд╡реАрдПрд╕-рд╕реНрдЯреВрдбрд┐рдпреЛ рдореЗрдВ рдЗрд╕ рдиреИрджрд╛рдирд┐рдХ тАЛтАЛрдирд┐рдпрдо рдХреЛ рдЫреЛрдбрд╝рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛, рдмрд┐рдирд╛ рдХрд┐рд╕реА рдЕрдкрд╡рд╛рдж рдХреЗред рдпрджрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рд╕реЗ рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╢рд┐рдХрд╛рдпрддреЗрдВ рд╣реИрдВ, рддреЛ рд╢рд╛рдпрдж рдореИрдВ рдЕрдкрдирд╛ рд╡рд┐рдЪрд╛рд░ рдмрджрд▓ рджреВрдВрдЧрд╛ред рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╢рд╛рдпрдж рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрд╕ рдбрд╛рдпрдЧреНрдиреЛрд╕реНрдЯрд┐рдХ рдХреЛ рдмрдВрдж рдХрд░рдиреЗ рдпрд╛ рдЕрд▓рд░реНрдЯ
рдХреЛ рджрдмрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдиреНрдп
рддрд░реАрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рд╕реЗ рд╕рдВрддреБрд╖реНрдЯ рд╣реИрдВред
рд╡реИрд╕реЗ, рдпрд╣ рдЗрди рдорд╛рдирд╕рд┐рдХ рдкреАрдбрд╝рд╛рдПрдВ рдереАрдВ рдЬрд┐рдиреНрд╣реЛрдВрдиреЗ рдореБрдЭреЗ рдПрдХ рд▓реЗрдЦ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░реЗрд░рд┐рдд рдХрд┐рдпрд╛ред рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдореЗрд░реЗ рджреНрд╡рд╛рд░рд╛ рджрд┐рдЦрд╛рдИ рдЧрдИ рдЬрд╛рдирдХрд╛рд░реА рд░реЛрдЪрдХ рдФрд░ рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧреАред
рддреЛ, рдЖрдЗрдП рджреЗрдЦреЗрдВ рдХрд┐ рд╢рд┐рдлреНрдЯ рдСрдкрд░реЗрдЯрд░реЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ C ++ 11 рдорд╛рдирдХ рдореЗрдВ рдХреНрдпрд╛ рд▓рд┐рдЦрд╛ рд╣реИ:
рдкрд╛рд░реА рд╕рдВрдЪрд╛рд▓рдХ << рдФрд░ >> рд╕рдореВрд╣ рдмрд╛рдПрдВ рд╕реЗ рджрд╛рдПрдВредрдкрд╛рд░реА-рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ << рдпреЛрдЧрд╛рддреНрдордХ-рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдкрд╛рд░реА-рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ >> рдпреЛрдЧрд╛рддреНрдордХ-рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдСрдкрд░реЗрдВрдб рдЕрднрд┐рдиреНрди рдпрд╛ рдЕрдирдХреИрдкреНрдб рдПрдиреНрдпреВрдорд░реЗрд╢рди рдкреНрд░рдХрд╛рд░ рдХреЗ рд╣реЛрдВрдЧреЗ рдФрд░ рдЗрдВрдЯреАрдЧреНрд░рд▓ рдкреНрд░рдореЛрд╢рди рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред1. рдкрд░рд┐рдгрд╛рдо рдХрд╛ рдкреНрд░рдХрд╛рд░ рдкреНрд░рдЪрд╛рд░рд┐рдд рдмрд╛рдПрдВ рдСрдкрд░реЗрдВрдб рд╣реИред рдпрд╣ рд╡реНрдпрд╡рд╣рд╛рд░ рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рд╣реИ рдпрджрд┐ рд╕рд╣реА рдСрдкрд░реЗрдВрдб рдирдХрд╛рд░рд╛рддреНрдордХ рд╣реИ, рдпрд╛ рдкрджреЛрдиреНрдирдд рдХрд┐рдП рдЧрдП рдмрд╛рдПрдВ рдСрдкрд░реЗрдВрдб рдХреЗ рдмрд┐рдЯреНрд╕ рдореЗрдВ рд▓рдВрдмрд╛рдИ рд╕реЗ рдЕрдзрд┐рдХ рдпрд╛ рдЙрд╕рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИред2. E1 рдХрд╛ рдорд╛рди << E2 E1 рдмрд╛рдПрдВ-рд╢рд┐рдлреНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ E2 рд╕рд╛ рд╕реНрдерд╛рди рд╣реИ; рдЦрд╛рд▓реА рдмрд┐рдЯреНрд╕ рд╢реВрдиреНрдп рд╕реЗ рднрд░реЗ рд╣реБрдП рд╣реИрдВред рдпрджрд┐ E1 рдХрд╛ рдПрдХ рдЕрд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд рдкреНрд░рдХрд╛рд░ рд╣реИ, рддреЛ рдкрд░рд┐рдгрд╛рдо рдХрд╛ рдорд╛рди E1 * 2 ^ E2 рд╣реИ, рдкрд░рд┐рдгрд╛рдо рдкреНрд░рдХрд╛рд░ рдореЗрдВ рдЕрдзрд┐рдХрддрдо рдореВрд▓реНрдп рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдпреЛрдЧреНрдп рд╕реЗ рдПрдХ рд╕реЗ рдХрдо moduloред рдЕрдиреНрдпрдерд╛, рдпрджрд┐ E1 рдореЗрдВ рдПрдХ рд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд рдкреНрд░рдХрд╛рд░ рдФрд░ рдЧреИрд░-рдирдХрд╛рд░рд╛рддреНрдордХ рдореВрд▓реНрдп рд╣реИ, рдФрд░ E1 * 2 ^ E2 рдкрд░рд┐рдгрд╛рдо рдкреНрд░рдХрд╛рд░ рдореЗрдВ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рд╣реИ, рддреЛ рдпрд╣ рдкрд░рд┐рдгрд╛рдореА рдореВрд▓реНрдп рд╣реИ; рдЕрдиреНрдпрдерд╛, рд╡реНрдпрд╡рд╣рд╛рд░ рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рд╣реИред3. E1 >> E2 рдХрд╛ рдорд╛рди E1 рд╕рд╣реА-рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд E2 рдмрд┐рдЯ рд╕реНрдерд┐рддрд┐ рд╣реИред рдпрджрд┐ E1 рдореЗрдВ рдПрдХ рдЕрд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд рдкреНрд░рдХрд╛рд░ рд╣реИ рдпрд╛ рдпрджрд┐ E1 рдореЗрдВ рдПрдХ рд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд рдкреНрд░рдХрд╛рд░ рдФрд░ рдПрдХ рдЧреИрд░-рдирдХрд╛рд░рд╛рддреНрдордХ рдореВрд▓реНрдп рд╣реИ, рддреЛ рдкрд░рд┐рдгрд╛рдо рдХрд╛ рдорд╛рди E1 / 2 ^ E2 рдХреЗ рднрд╛рдЧрдлрд▓ рдХрд╛ рдЕрднрд┐рдиреНрди рдЕрдВрдЧ рд╣реИред рдпрджрд┐ рдИ 1 рдореЗрдВ рдПрдХ рд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд рдкреНрд░рдХрд╛рд░ рдФрд░ рдПрдХ рдирдХрд╛рд░рд╛рддреНрдордХ рдореВрд▓реНрдп рд╣реИ, рддреЛ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдореВрд▓реНрдп рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди-рдкрд░рд┐рднрд╛рд╖рд┐рдд рд╣реИредрдРрд╕реЗ рдЧреНрд░рдВрдереЛрдВ рдХреЛ рдкрдврд╝рдирд╛ рджреБрдЦрдж рдФрд░ рджреБрдЦрдж рд╣реИред рд▓реЗрдХрд┐рди рдЪрд┐рдВрддрд╛ рдордд рдХрд░реЛред рдЕрдм рд╣рдо рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рд╡рд┐рднрд┐рдиреНрди рдЧрд▓рдд рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВрдЧреЗред
рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рд╕рд░рд▓ рдорд╛рдорд▓рд╛ рддрдм рд╣реИ рдЬрдм рд╕рд╣реА рдСрдкрд░реЗрдВрдб рдХрд╛ рдирдХрд╛рд░рд╛рддреНрдордХ рдореВрд▓реНрдп рд╣реИред рдПрдХ рдЙрджрд╛рд╣рд░рдг:
int рдП = 10;
int B = A << -5;
рддреЛ рднрдЧрд╡рд╛рди рдХрд╛ рд╢реБрдХреНрд░ рд╣реИ рдХрд┐ рдХреЛрдИ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдХрдо рд╕реЗ рдХрдо, 70 рд╕реЗ рдЕрдзрд┐рдХ рдУрдкрди-рд╕реЛрд░реНрд╕ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдордиреЗ рдРрд╕реА рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХрд╛ рд╕рд╛рдордирд╛ рдирд╣реАрдВ рдХрд┐рдпрд╛ред
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдорд╛рдорд▓рд╛ рдФрд░ рдЕрдзрд┐рдХ рджрд┐рд▓рдЪрд╕реНрдк рд╣реИред рдпрд╣ N рдмрд┐рдЯреНрд╕ рдХреА рдПрдХ рд╢рд┐рдлреНрдЯ рд╣реИ, рдЬрд╣рд╛рдБ N, рдмрд╛рдПрдВ рдСрдкрд░реЗрдВрдб рдореЗрдВ рдмрд┐рдЯреНрд╕ рдХреА рд╕рдВрдЦреНрдпрд╛ рд╕реЗ рдЕрдзрд┐рдХ рд╣реИред рд╕рдмрд╕реЗ рд╕рд░рд▓ рдЙрджрд╛рд╣рд░рдг:
int рдП = 10;
int рдмреА = рдП << 100;
рдЖрдЗрдП рджреЗрдЦреЗрдВ рдХрд┐ рдРрд╕реА рдЧрд▓рддреА рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ рдХреИрд╕реЗ рджрд┐рдЦ рд╕рдХрддреА рд╣реИред рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛрдб рдЯреБрдХрдбрд╝рд╛ Lib7z рдкреБрд╕реНрддрдХрд╛рд▓рдп рдореЗрдВ рд╣рдорд╛рд░реЗ рджреНрд╡рд╛рд░рд╛ рдЦреЛрдЬрд╛ рдЧрдпрд╛ рдерд╛:
SZ_RESULT
SafeReadDirectUInt64 (ISzInStream * рдЗрдирд╕реНрдЯреНрд░реАрдо, UInt64 * рдорд╛рди)
{
int i;
* рдореВрд▓реНрдп = 0;
рдХреЗ рд▓рд┐рдП (i = 0? рдореИрдВ <8; рдореИрдВ ++)
{
рдмрд╛рдЗрдЯ b;
RINOK (SafeReadDirectByte (рдЗрдирд╕реНрдЯреНрд░реАрдо, рдФрд░ рдмреА));
* рдореВрд▓реНрдп | = ((UInt32) b << (8 * i));
}
рд╡рд╛рдкрд╕реА SZ_OK;
}
рдкреАрд╡реАрдПрд╕-рд╕реНрдЯреВрдбрд┐рдпреЛ рдбрд╛рдпрдЧреНрдиреЛрд╕реНрдЯрд┐рдХ рд╕рдВрджреЗрд╢: V610 рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ред рд╢рд┐рдлреНрдЯ рдСрдкрд░реЗрдЯрд░ рдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдВ <<ред рджрд╛рд╣рд┐рдирд╛ рдСрдкрд░реЗрдВрдб ('(8 * i)' = [0..56]) рдкреНрд░рдореЛрдЯреЗрдб рд▓реЗрдлреНрдЯ рдСрдкрд░реЗрдВрдб рдХреЗ рдмрд┐рдЯреНрд╕ рдореЗрдВ рд▓рдВрдмрд╛рдИ рд╕реЗ рдЕрдзрд┐рдХ рдпрд╛ рдмрд░рд╛рдмрд░ рд╣реИред lib7z 7zin.c 233
рдлрд╝рдВрдХреНрд╢рди рдмрд╛рдЗрдЯ рджреНрд╡рд╛рд░рд╛ 64-рдмрд┐рдЯ рдорд╛рди рдмрд╛рдЗрдЯ рдХреЛ рдкрдврд╝рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддрд╛ рд╣реИред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рд╡рд╣ рд╕рдлрд▓ рдирд╣реАрдВ рд╣реЛрдЧреА рдпрджрд┐ рд╕рдВрдЦреНрдпрд╛ 0x00000000FFFFFFFFFFFF рд╕реЗ рдЕрдзрд┐рдХ рдереАред рд╢рд┐рдлреНрдЯ рдкрд░ рдзреНрдпрд╛рди рджреЗрдВ "(UInt32) b << (8 * i)"ред рдмрд╛рдПрдВ рдСрдкрд░реЗрдВрдб рдХрд╛ рдЖрдХрд╛рд░ 32 рдмрд┐рдЯреНрд╕ рд╣реИред рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рд╢рд┐рдлреНрдЯ 0 рд╕реЗ 56 рдмрд┐рдЯреНрд╕ рддрдХ рд╣реЛрддрд╛ рд╣реИред рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ, рдпрд╣ рдЗрд╕ рддрдереНрдп рдХреЛ рдЬрдиреНрдо рджреЗрдЧрд╛ рдХрд┐ 64-рдмрд┐рдЯ рдореВрд▓реНрдп рдХрд╛ рдкреБрд░рд╛рдирд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╢реВрдиреНрдп рд╕реЗ рднрд░рд╛ рд░рд╣рддрд╛ рд╣реИред рд╕реИрджреНрдзрд╛рдВрддрд┐рдХ рд░реВрдк рд╕реЗ, рдЖрдорддреМрд░ рдкрд░ рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ рд╣реЛрддрд╛ рд╣реИ рдФрд░ рдкрд░рд┐рдгрд╛рдо рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рд╣реЛрддрд╛ рд╣реИред
рд╕рд╣реА рдХреЛрдб рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрдирд╛ рдЪрд╛рд╣рд┐рдП:
* рдореВрд▓реНрдп | = ((UInt64) b << (8 * i));
рдкрд╛рдардХ рдкреВрдЫ рд╕рдХрддрд╛ рд╣реИ, рдХреНрдпрд╛ рдХреЛрдб рдиреАрдЪреЗ рд╕рд╣реА рд╣реИ?
рдЪрд╛рд░ рдП = 1;
int B = A << 20;
рд╣рд╛рдБ, рд╕рд╣реА рд╣реИред рдСрдкрд░реЗрдЯрд░ рдХреЗ рдмрд╛рдИрдВ рдУрд░ << рдХреЗрд╡рд▓ рдПрдХ рдЪрд░ A рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдХреЗрд╡рд▓ 8 рдмрд┐рдЯреНрд╕ рд╣реИрдВред рд▓реЗрдХрд┐рди рд╢рд┐рдлреНрдЯ рдСрдкрд░реЗрд╢рди рд╢реБрд░реВ рд╣реЛрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдмрд╛рдИрдВ рдУрд░ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдЯрд╛рдЗрдк int рддрдХ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рддрджрдиреБрд╕рд╛рд░, 'рдмрд┐рдЯ' рдкреНрд░рдХрд╛рд░ рдХрд╛ рдорд╛рди 20 рдмрд┐рдЯреНрд╕ рджреНрд╡рд╛рд░рд╛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдФрд░ рдЕрдм рд╕рдмрд╕реЗ рджрд┐рд▓рдЪрд╕реНрдк рдкрд▓ред рдпрд╣ рдирдХрд╛рд░рд╛рддреНрдордХ рдореВрд▓реНрдпреЛрдВ рдореЗрдВ рдмрджрд▓рд╛рд╡ рд╣реИред рд╕рдмрд╕реЗ рд╕рд░рд▓ рдЙрджрд╛рд╣рд░рдг:
int рдП = -1 << 5; // рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░
int рдмреА = -1 >> 5; // рдЕрдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╡реНрдпрд╡рд╣рд╛рд░
рдЗрд╕ рдХреЛрдб рдореЗрдВ рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рдФрд░ рдЕрдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╡реНрдпрд╡рд╣рд╛рд░ рд╣реЛрддрд╛ рд╣реИред рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ рдЗрд╕рдореЗрдВ рдХреЛрдИ рдЕрдВрддрд░ рдирд╣реАрдВ рд╣реИред рдХреЗрд╡рд▓ рдПрдХ рдирд┐рд╖реНрдХрд░реНрд╖ рд╣реИ - рдЖрдк рдРрд╕рд╛ рдирд╣реАрдВ рд▓рд┐рдЦ рд╕рдХрддреЗред
рдХреЛрдИ рднреА рдЗрд╕рдХрд╛ рдЕрдВрдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдХреБрдЫ рдЙрджрд╛рд╣рд░рдг рджреЗ рд╕рдХрддрд╛ рд╣реИред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рджреЛ рдмрд╛рд░реАрдХрд┐рдпрд╛рдВ рд╣реИрдВ рдЬреЛ рджреБрдирд┐рдпрд╛ рдХреА рд╕рд╣реА рддрд╕реНрд╡реАрд░ рдХреЛ рдЦрд░рд╛рдм рдХрд░рддреА рд╣реИрдВред
рдиреВрддрди рдЬреЛ рджреБрдирд┐рдпрд╛ рдХреА рд╕рд╣реА рддрд╕реНрд╡реАрд░ рдХреЛ рдЦрд░рд╛рдм рдХрд░рддреЗ рд╣реИрдВ
рдиреБрд╕рд╛рди N резред 1998 рдХреЗ рдкреБрд░рд╛рдиреЗ C ++ рднрд╛рд╖рд╛ рдорд╛рдирдХ рдореЗрдВ, рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ рд╡рд╛рд▓реА рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдХреЛ рджрд░рдХрд┐рдирд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдЕрд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд рдореВрд▓реНрдпреЛрдВ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдкрд░ рдСрдкрд░реЗрдЯрд░ << рдХреИрд╕реЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдкреНрд░рддреАрдХрд╛рддреНрдордХ рдЕрд░реНрдереЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рдирд╣реАрдВ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдпрд╣ рдорд╛рдорд▓рд╛ рд╣реИ рдЬрдм рдорд╛рдирдХ рдкрдврд╝рдиреЗ рд╕реЗ рд╕реНрдкрд╖реНрдЯрддрд╛ рдирд╣реАрдВ рдЬреБрдбрд╝рддреА рд╣реИред рдЗрд╕ рддрд░рд╣ рдХреЗ рдорд╛рдорд▓реЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
рдЗрд╕рд▓рд┐рдП, 1998 рд╕реЗ C ++ рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ, рдирд┐рд░реНрдорд╛рдг "-1 << 5" рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ рдХреА рдУрд░ рдирд╣реАрдВ рд▓реЗ рдЬрд╛рддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдЗрд╕рдХрд╛ рднреА рд╡рд░реНрдгрди рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
рдиреБрдиреНрд╕ N2ред рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рд╕рд╛рд╣рд╕рдкреВрд░реНрд╡рдХ рдХрдИ рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рдореЗрдВ рдирдХрд╛рд░рд╛рддреНрдордХ рдореВрд▓реНрдпреЛрдВ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВред рдФрд░ рдЙрдирдХреЗ рд╕рд╛рде рдмрд╣рд╕ рдХрд░рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реЛрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рдХреЛрдб рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
рдЖрдЗрдП рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВ рдХрд┐ рдХреНрдпрд╛ рдЗрди рдмрд╛рд░реАрдХрд┐рдпреЛрдВ рдХреЗ рдХрд╛рд░рдг, рд╣рдореЗрдВ рдПрдХ рдирдП рдирд┐рджрд╛рди рд╕реЗ рдЗрдирдХрд╛рд░ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рд╣рдо рд╕реЛрдЪрддреЗ рд╣реИрдВ рдХрд┐ рдирд╣реАрдВред
рдкреБрд░рд╛рдирд╛ C ++ рдорд╛рдирдХ рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рдХрд╣рддрд╛ рд╣реИред рдирд╡реАрди рдХрд╣рддрд╛ рд╣реИред рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рдкреБрд░рд╛рдиреЗ рдорд╛рдирдХ рдкрд░реНрдпрд╛рдкреНрдд рд░реВрдк рд╕реЗ рд╕рдЯреАрдХ рдирд╣реАрдВ рдереЗред рд╡реИрд╕реЗ, рдирдпрд╛ рд╕реА рднрд╛рд╖рд╛ рдорд╛рдирдХ (рдореИрдВрдиреЗ 25 рдЬреВрди, 2010 рдХреЗ рдПрдХ рдорд╕реМрджреЗ рдХреЛ рджреЗрдЦрд╛) рдпрд╣ рднреА рдХрд╣рддрд╛ рд╣реИ рдХрд┐ рдирдХрд╛рд░рд╛рддреНрдордХ рдореВрд▓реНрдпреЛрдВ рдХреЗ рдмрджрд▓рд╛рд╡ рд╕реЗ рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ рд╣реЛрддрд╛ рд╣реИред рдирд┐рд╖реНрдХрд░реНрд╖ - рдЖрдкрдХреЛ рдЧрд▓рдд рдХреЛрдб рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдЪрд╛рд╣рд┐рдПред
рдЕрдм рдЦрддрд░рдирд╛рдХ рдмрджрд▓рд╛рд╡реЛрдВ рдХреЗ рд╡реНрдпрд╛рдкрдХ рдЙрдкрдпреЛрдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЙрдирдореЗрдВ рд╕реЗ рдмрд╣реБрдд рд╕рд╛рд░реЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, JPEG рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдореЗрдВ, рдЖрдкрдХреЛ рдирд┐рдореНрди рдорд╛рдиреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рд╕рд░рдгреА рдХреЛ рдкреЙрдкреНрдпреБрд▓реЗрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
11111111111111111111111111111111b
11111111111111111111111111111101b
11111111111111111111111111111001b
11111111111111111111111111110001b
...
рдпрд╣ рдЗрд╕ рддрд░рд╣ рд▓рд┐рдЦрд╛ рд╣реИ:
/ * рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ n рд╣реИ (-1 << n) + 1 * /
рд╕реНрдерд┐рд░ рдХреЙрдиреНрд╕реНрдЯреЗрдВрд╕ int Extended_offset [16] = {0,
((-1) << 1) + 1, (-1) << 2) + 1, (-1) << 3) + 1
((-1) << 4) + 1, (-1) << 5) + 1, (-1) << 6) + 1
((-1) << 7) + 1, (-1) << 8) + 1, (-1) << 9) + 1
((-1) << 10) + 1, (-1) << 11) + 1, (-1) << 12) + 1
((-1) << 13) + 1, (-1) << 14) + 1, (-1) << 15) + 1
};
JPEG рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛ рдЦрд╝рд░рд╛рдм рдХрд╣рдирд╛ рдХрдард┐рди рд╣реИред рдФрд░ рдпрд╣ рдХреЛрдб рд╕рдордп рдФрд░ рд╡рд┐рднрд┐рдиреНрди рд╕рдВрдХрд▓рдХ рджреНрд╡рд╛рд░рд╛ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
рдорд╛рдирдХ рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ, рдЗрд╕реЗ рдЕрдм рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд▓рд┐рдЦрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП:
рд╕реНрдерд┐рд░ рдХреЙрдиреНрд╕реНрдЯреЗрдВрд╕ int Extended_offset [16] =
{0,
((~ 0u) << 1) | 1, ((~ 0u) << 2) | 1, ((~ 0u) << 3) | 1
((~ 0u) << 4) | 1, ((~ 0u) << 5) | 1, ((~ 0u) << 6) | 1
((~ 0u) << 7) | 1, ((~ 0u) << 8) | 1, ((~ 0u) << 9) | 1
((~ 0u) << 10) | 1, ((~ 0u) << 11) | 1, ((~ 0u) << 12) | 1
((~ 0u) << 13) | 1, ((~ 0u) << 14) | 1, ((~ 0u) << 15) | 1
};
рд▓реЗрдХрд┐рди рдХреНрдпрд╛ рдЗрд╕ рддрд░рд╣ рдХреЗ рд╕рдВрдкрд╛рджрди рдХрд░рдирд╛ рдЖрдкрдХреЗ рд▓рд╛рдпрдХ рд╣реИ? рдореИрдВ рдХреЗрд╡рд▓ рдпрд╣ рд╕рдм рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд▓рд╛рд╣ рджреЗ рд╕рдХрддрд╛ рд╣реВрдВред рдпрд╣ рдкрддрд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдХрдм рдФрд░ рдХреИрд╕реЗ, рдпрд╣ рд╕реНрд╡рдпрдВ рдкреНрд░рдХрдЯ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
рд╡рд┐рднрд┐рдиреНрди рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рдореЗрдВ рдирдХрд╛рд░рд╛рддреНрдордХ рдореВрд▓реНрдп рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рдЕрдиреНрдп рдЙрджрд╛рд╣рд░рдг рджрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рд╡реЗ рд╕рднреА рдПрдХ рд╣реА рдкреНрд░рдХрд╛рд░ рдХреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдЙрдирдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрдврд╝рдирд╛ рджрд┐рд▓рдЪрд╕реНрдк рдирд╣реАрдВ рд╣реЛрдЧрд╛ред
рдирд┐рд╖реНрдХрд░реНрд╖
- рдкрд╣рд▓реЗ, рдмрд┐рдЯ рд╕рдВрдЪрд╛рд▓рди рдФрд░ рдкрд╛рд░рд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреМрд╢рд▓ рдХрд╛ рд╕рдВрдХреЗрдд рдерд╛ рдФрд░ рдЖрдкрдХреЛ рддреЗрдЬ рдХреЛрдб рд▓рд┐рдЦрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рдерд╛ред рдЕрдм рдпрд╣ рд▓рдЧрднрдЧ рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рдирд╣реАрдВ рд╣реИред рдпрд╣ рдЕрдзрд┐рдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдХрд┐ рдХреЛрдб рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИред рдХреЗрд╡рд▓ рдЖрд╡рд╢реНрдпрдХ рд╣реЛрдиреЗ рдкрд░ рд╣реА рдмреАрдЯ рдЧреЗрдореНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред
- "-1 << N" рдлрд╝реЙрд░реНрдо рдХреА рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпрд╛рдБ рдЕрдм рдЕрдорд╛рдиреНрдп рдФрд░ рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЗ рд░реВрдк рдореЗрдВ рдШреЛрд╖рд┐рдд рдХреА рдЧрдИ рд╣реИрдВред
- "-1 << N" рдлрд╝реЙрд░реНрдо рдХреА рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпрд╛рдБ рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ рдЕрдХреНрд╕рд░ рдЙрдкрдпреЛрдЧ рдХреА рдЬрд╛рддреА рд░рд╣реА рд╣реИрдВред рдЗрд╕рд▓рд┐рдП, рдРрд╕реЗ рдирд┐рд░реНрдорд╛рдгреЛрдВ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рдЦрд┐рд▓рд╛рдл рд╡рд╛рд╕реНрддрд╡рд┐рдХ рддрд░реНрдХ рджреЗрдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИред рддрд░реНрдХ рдХреЗрд╡рд▓ C рдФрд░ C ++ рднрд╛рд╖рд╛рдУрдВ рдХреЗ рдирдП рдорд╛рдирдХ рд╣реИрдВред
- рдЕрдкрдиреЗ рд▓рд┐рдП рддрдп рдХрд░реЗрдВ рдХрд┐ рдирдХрд╛рд░рд╛рддреНрдордХ рдореВрд▓реНрдпреЛрдВ рдХреА рдкрд╛рд░реА рдХреЛ рд╕рд╣реА рдХрд░рдирд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВред рд▓реЗрдХрд┐рди рдореИрдВ рдПрдХ рдлрд┐рдХреНрд╕ рдХреА рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рд╣реВрдВред рдмрд╕ рдорд╛рдорд▓реЗ рдореЗрдВред
- рдкреАрд╡реАрдПрд╕-рд╕реНрдЯреВрдбрд┐рдпреЛ рдореЗрдВ рдЦрддрд░рдирд╛рдХ рдмрджрд▓рд╛рд╡реЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдбрд╛рдпрдЧреНрдиреЛрд╕реНрдЯрд┐рдХ рдореИрд╕реЗрдЬ 4.60 рд╡рд░реНрдЬрди рд╕реЗ рд╢реБрд░реВ рд╣реЛрдВрдЧреЗ, рдЬреЛ рдЬрд▓реНрдж рд╣реА рдЬрд╛рд░реА рдХрд┐рдП рдЬрд╛рдПрдВрдЧреЗред
рдЕрддрд┐рд░рд┐рдХреНрдд рд╕рдВрд╕рд╛рдзрди
- рдХрд╛рдВрдЯрд╛ рди рдЬрд╛рдирдиреЗ рд╕реЗ, рдкрд╛рдиреА рдореЗрдВ рдирд╣реАрдВ рдЙрддрд░рддрд╛ред рднрд╛рдЧ рдПрдХ http://habrahabr.ru/post/137039/
- рдХрд╛рдВрдЯрд╛ рди рдЬрд╛рдирдиреЗ рд╕реЗ, рдкрд╛рдиреА рдореЗрдВ рдирд╣реАрдВ рдЙрддрд░рддрд╛ред рднрд╛рдЧ рджреЛ http://habrahabr.ru/post/137411/
- рд╕реАрди рдПрд░реЙрди рдПрдВрдбрд░рд╕рдиред рдмрд┐рдЯ рдЯреНрд╡рд┐рдбрд▓рд┐рдВрдЧ рд╣реИрдХреНрд╕ред http://www.viva64.com/go.php?url=837
- рд╡рд┐рдХрд┐рдкреАрдбрд┐рдпрд╛ред рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ред http://www.viva64.com/go.php?url=663
- рд╡рд┐рдХрд┐рдкреАрдбрд┐рдпрд╛ред рдЕрдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╡реНрдпрд╡рд╣рд╛рд░ред http://www.viva64.com/go.php?url=738
- рдЕрд▓реАрдирд╛ рд╕реА ++ред рдЕрдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╡реНрдпрд╡рд╣рд╛рд░ рдФрд░ рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЗ рдмреАрдЪ рдХрд╛ рдЕрдВрддрд░ред http://www.viva64.com/go.php?url=739