рдЯреВ'рд╕ рдХреЙрдореНрдкреНрд▓реАрдореЗрдВрдЯ рдХреИрд▓рдХреБрд▓реЗрдЯрд░ рдХреНрдпрд╛ рд╣реИ?
рдХрдВрдкреНрдпреВрдЯрд░ рд╕рд╛рдЗрдиреНрдб рдкреВрд░реНрдгрд╛рдВрдХреЛрдВ (signed integers) рдХреЛ рд╕реНрдЯреЛрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЯреВ'рд╕ рдХреЙрдореНрдкреНрд▓реАрдореЗрдВрдЯ рдХреЛ рдорд╛рдирдХ рддрд░реАрдХреЗ рдХреЗ рд░реВрдк рдореЗрдВ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░рддреЗ рд╣реИрдВред рдпрд╣ рдХреИрд▓рдХреБрд▓реЗрдЯрд░ рдХрд┐рд╕реА рднреА рджрд╢рдорд▓рд╡ рд╕рдВрдЦреНрдпрд╛ рдХреЛ рдЖрдкрдХреА рдЪреБрдиреА рд╣реБрдИ рдмрд┐рдЯ рдЪреМрдбрд╝рд╛рдИ (4, 8, 16 рдпрд╛ 32 рдмрд┐рдЯ) рдХреЗ рд▓рд┐рдП рдЙрд╕рдХреЗ рдЯреВ'рд╕ рдХреЙрдореНрдкреНрд▓реАрдореЗрдВрдЯ рдмрд╛рдЗрдирд░реА рд░реВрдк рдореЗрдВ рдмрджрд▓ рджреЗрддрд╛ рд╣реИ, рдФрд░ рд╕рд╛рде рд╣реА рдЕрдирд╕рд╛рдЗрдиреНрдб рдкреИрдЯрд░реНрди рд╡реИрд▓реНрдпреВ рдФрд░ рдЙрди рдмрд┐рдЯреНрд╕ рджреНрд╡рд╛рд░рд╛ рджрд░реНрд╢рд╛рдИ рдЧрдИ рд╕рд╛рдЗрдиреНрдб рд╡реИрд▓реНрдпреВ, рджреЛрдиреЛрдВ рджрд┐рдЦрд╛рддрд╛ рд╣реИред
рдЗрд╕рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХреИрд╕реЗ рдХрд░реЗрдВ
рдХреЛрдИ рджрд╢рдорд▓рд╡ рд╕рдВрдЦреНрдпрд╛ рдбрд╛рд▓реЗрдВ тАФ рдЪрд╛рд╣реЗ рдзрдирд╛рддреНрдордХ рд╣реЛ рдпрд╛ рдЛрдгрд╛рддреНрдордХ тАФ рдФрд░ рдмрд┐рдЯ рдЪреМрдбрд╝рд╛рдИ рдЪреБрдиреЗрдВред рдпрд╣ рдЯреВрд▓ рд╕рдВрдЦреНрдпрд╛ рдХреЛ \(2^n\) рд╕реЗ рдореЙрдбреНрдпреВрд▓реЛ рдХрд░рдХреЗ рд╡рд╣ рд╕рдЯреАрдХ рдмрд┐рдЯ рдкреИрдЯрд░реНрди рддреИрдпрд╛рд░ рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдХреЛрдИ CPU рд╕реНрдЯреЛрд░ рдХрд░реЗрдЧрд╛ред рдпрд╣ рдЖрдкрдХреЛ рдпрд╣ рднреА рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ рд╡рд╣реА рдкреИрдЯрд░реНрди рдХрд┐рд╕ рд╕рд╛рдЗрдиреНрдб рд╡реИрд▓реНрдпреВ рдореЗрдВ рдбрд┐рдХреЛрдб рд╣реЛрддрд╛ рд╣реИ, рддрд╛рдХрд┐ рдЖрдк рд░рд╛рдЙрдВрдб-рдЯреНрд░рд┐рдк рдХреА рдЬрд╛рдБрдЪ рдХрд░ рд╕рдХреЗрдВред
рдлрд╝реЙрд░реНрдореВрд▓рд╛ рд╕рдордЭреЗрдВ
рдХрд┐рд╕реА n-рдмрд┐рдЯ рдлрд╝реАрд▓реНрдб рдХреЗ рд▓рд┐рдП, рдЕрдирд╕рд╛рдЗрдиреНрдб рд░реВрдк рд╣реИ u = ((x mod 2^n) + 2^n) mod 2^nред
рдпрд╣ рдЛрдгрд╛рддреНрдордХ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЛ рдШреБрдорд╛рдХрд░ (wrap) рджреЗрддрд╛ рд╣реИ: 8 рдмрд┐рдЯ рдореЗрдВ, тИТ5 рдмрди рдЬрд╛рддрд╛ рд╣реИ \(256 - 5 = 251\), рдЬрд┐рд╕рдХрд╛ рдмрд╛рдЗрдирд░реА рд░реВрдк рд╣реИ 11111011ред рдХрд┐рд╕реА рдкреИрдЯрд░реНрди рдХреЛ рд╡рд╛рдкрд╕ рд╕рд╛рдЗрдиреНрдб рд╡реИрд▓реНрдпреВ рдореЗрдВ рдбрд┐рдХреЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд┐рдЯ (MSB) рдЬрд╛рдБрдЪреЗрдВ: рдЕрдЧрд░ рд╡рд╣ 1 рд╣реИ (рдпрд╛рдиреА \(u \geq 2^{n-1}\)), рддреЛ рд╡реИрд▓реНрдпреВ рд╣реИ \(u - 2^n\); рд╡рд░рдирд╛ рд╡рд╣ рдмрд╕ \(u\) рд╣реА рд╣реИред рдирд┐рдЧреЗрдЯ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рд╕рдордХрдХреНрд╖ рддрд░реАрдХрд╛ рд╣реИ тАФ рд╕рднреА рдмрд┐рдЯреНрд╕ рдХреЛ рдЙрд▓рдЯ рджреЗрдВ рдФрд░ рдПрдХ рдЬреЛрдбрд╝ рджреЗрдВ: \(\sim x + 1\)ред
рд╣рд▓ рдХрд┐рдпрд╛ рд╣реБрдЖ рдЙрджрд╛рд╣рд░рдг
тИТ5 рдХреЛ 8-рдмрд┐рдЯ рдЯреВ'рд╕ рдХреЙрдореНрдкреНрд▓реАрдореЗрдВрдЯ рдореЗрдВ рдмрджрд▓реЗрдВред рдЪрд░рдг 1: \(2^8 = 256\)ред рдЪрд░рдг 2: \(u = ((-5 \bmod 256) + 256) \bmod 256 = 251\)ред рдЪрд░рдг 3: 251 рдХрд╛ рдмрд╛рдЗрдирд░реА рд░реВрдк рд╣реИ 11111011ред рдЪреВрдБрдХрд┐ MSB 1 рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╕рд╛рдЗрдиреНрдб рд╡реИрд▓реНрдпреВ рд╣реИ \(251 - 256 = -5\), рдЬреЛ рд░реВрдкрд╛рдВрддрд░рдг рдХреА рдкреБрд╖реНрдЯрд┐ рдХрд░рддрд╛ рд╣реИред
рдЕрдХреНрд╕рд░ рдкреВрдЫреЗ рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рд╕рд╡рд╛рд▓
рдЕрдЧрд░ рдореЗрд░реА рд╕рдВрдЦреНрдпрд╛ рдмрд┐рдЯ рдЪреМрдбрд╝рд╛рдИ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдмрдбрд╝реА рд╣реЛ рддреЛ? рдпрд╣ \(2^n\) рдореЙрдбреНрдпреВрд▓реЛ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдШреВрдо рдЬрд╛рддреА рд╣реИ (рдУрд╡рд░рдлрд╝реНрд▓реЛ), рдареАрдХ рд╡реИрд╕реЗ рд╣реА рдЬреИрд╕реЗ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдХрд░рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, 8 рдмрд┐рдЯ рдореЗрдВ 300 рдмрди рдЬрд╛рддрд╛ рд╣реИ \(300 - 256 = 44\)ред
рдЕрдирд╕рд╛рдЗрдиреНрдб рд╡реИрд▓реНрдпреВ, рд╕рд╛рдЗрдиреНрдб рд╡реИрд▓реНрдпреВ рд╕реЗ рдЕрд▓рдЧ рдХреНрдпреЛрдВ рд╣реЛрддреА рд╣реИ? рдПрдХ рд╣реА рдмрд┐рдЯреНрд╕ рдХреЛ рджреЛ рддрд░рд╣ рд╕реЗ рдкрдврд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЕрдирд╕рд╛рдЗрдиреНрдб рдореЗрдВ рд╕рднреА рдмрд┐рдЯреНрд╕ рдХреЛ рдзрдирд╛рддреНрдордХ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ; рд╕рд╛рдЗрдиреНрдб рдореЗрдВ рд╕рдмрд╕реЗ рдКрдкрд░ рд╡рд╛рд▓реЗ рдмрд┐рдЯ рдХреЛ рдЛрдгрд╛рддреНрдордХ рднрд╛рд░ (weight) рдХреЗ рд░реВрдк рдореЗрдВ рд▓рд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдХреНрдпрд╛ рдпрд╣ 64-рдмрд┐рдЯ рд╕рдВрднрд╛рд▓рддрд╛ рд╣реИ? рдпрд╣ рдЯреВрд▓ 32-рдмрд┐рдЯ рддрдХ рдХреА рдЖрдо рдЪреМрдбрд╝рд╛рдЗрдпреЛрдВ рдХреЛ рд╕рдкреЛрд░реНрдЯ рдХрд░рддрд╛ рд╣реИ, рддрд╛рдХрд┐ рдкрд░рд┐рдгрд╛рдо рд╕реБрд░рдХреНрд╖рд┐рдд рдкрд░рд┐рд╢реБрджреНрдзрддрд╛ (precision) рдХреЗ рднреАрддрд░ рд░рд╣реЗрдВред