Π Π°Π½Π΅Π΅ ΠΌΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎ ΠΎΠ³ΠΎΠ²ΠΎΡΠΈΠ»ΠΈ, ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΡΠ΄ΠΎΠ±Π½ΠΎΠ΅ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ Π΄Π΅ΠΉΡΡΠ²ΡΠ΅Ρ ΡΠΎΠ»ΡΠΊΠΎ Π΄ΠΎ ΡΠ΅Ρ ΠΏΠΎΡ, ΠΏΠΎΠΊΠ° Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ ΠΈ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΠΎΡΡΠ°ΡΡΡΡ Π² ΡΠ°ΠΌΠΊΠ°Ρ Π΄ΠΎΠΏΡΡΡΠΈΠΌΠΎΠ³ΠΎ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π°. Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ, ΡΡΠΎ ΠΏΡΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ, Π΅ΡΠ»ΠΈ ΠΌΡ Π²ΡΠΉΠ΄Π΅ΠΌ Π·Π° Π΅Π³ΠΎ ΠΏΡΠ΅Π΄Π΅Π»Ρ. ΠΡΡΡΡ Π² Π±Π΅Π·Π·Π½Π°ΠΊΠΎΠ²ΠΎΠΉ Π·Π°ΠΏΠΈΡΠΈ Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΈΠ· 130 Π²ΡΡΠ΅ΡΡΡ 10. 130 β ΡΡΠΎ 10000010, ΠΏΠΎΡΠ»Π΅ Π²ΡΡΠΈΡΠ°Π½ΠΈΡ ΠΏΠΎΠ»ΡΡΠΈΠΌ 01111000 (120). ΠΠΎ Π΅ΡΠ»ΠΈ ΠΏΠΎΠΏΡΡΠ°ΡΡΡΡ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠΈΡΠΎΠ²Π°ΡΡ ΡΡΠΈ Π΄Π²ΠΎΠΈΡΠ½ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΊΠ°ΠΊ Π·Π½Π°ΠΊΠΎΠ²ΡΠ΅ ΡΠΈΡΠ»Π°, ΠΏΠΎΠ»ΡΡΠΈΡΡΡ, ΡΡΠΎ ΠΈΠ· -126 ΠΌΡ Π²ΡΡΠΈΡΠ°Π΅ΠΌ 10 ΠΈ ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ 120. Π’Π°ΠΊΠΈΠΌΠΈ ΠΏΠ°ΡΠ°Π΄ΠΎΠΊΡΠ°Π»ΡΠ½ΡΠΌΠΈ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ°ΠΌΠΈ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡΡΡ ΡΠ°ΡΠΏΠ»Π°ΡΠΈΠ²Π°ΡΡΡΡ Π·Π° ΡΠ½ΠΈΡΠΈΠΊΠ°ΡΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ ΡΠΎ Π·Π½Π°ΠΊΠΎΠ²ΡΠΌΠΈ ΠΈ Π±Π΅Π·Π·Π½Π°ΠΊΠΎΠ²ΡΠΌΠΈ ΡΠΈΡΠ»Π°ΠΌΠΈ.
Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ Π΄ΡΡΠ³ΠΎΠΉ ΠΏΡΠΈΠΌΠ΅Ρ: ΠΈΠ· ΠΏΡΡΠΈ (Π² Π΄Π²ΠΎΠΈΡΠ½ΠΎΠΌ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠΈ 00000101) Π²ΡΡΠ΅ΡΡΡ Π΄Π΅ΡΡΡΡ (00001010). ΠΠ΄Π΅ΡΡ ΡΠΌΠ΅ΡΡΠ½ΠΎ Π²ΡΠΏΠΎΠΌΠ½ΠΈΡΡ Π²ΡΡΠΈΡΠ°Π½ΠΈΠ΅ Π² ΡΡΠΎΠ»Π±ΠΈΠΊ, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΈΠ·ΡΡΠ°Π΅ΡΡΡ Π² ΡΠΊΠΎΠ»Π΅: Π΅ΡΠ»ΠΈ Π² ΡΠ°Π·ΡΡΠ΄Π΅ ΡΠΌΠ΅Π½ΡΡΠ°Π΅ΠΌΠΎΠ³ΠΎ ΡΡΠΎΠΈΡ ΡΠΈΡΡΠ°, Π±ΠΎΠ»ΡΡΠ°Ρ, ΡΠ΅ΠΌ Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅ΠΌ ΡΠ°Π·ΡΡΠ΄Π΅ Π²ΡΡΠΈΡΠ°Π΅ΠΌΠΎΠ³ΠΎ, ΡΠΎ ΠΈΠ· ΡΡΠ°ΡΡΠ΅Π³ΠΎ ΡΠ°Π·ΡΡΠ΄Π° ΡΠΌΠ΅Π½ΡΡΠ°Π΅ΠΌΠΎΠ³ΠΎ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡΡΡ Π·Π°Π½ΠΈΠΌΠ°ΡΡ Π΅Π΄ΠΈΠ½ΠΈΡΡ. Π’ΠΎ ΠΆΠ΅ ΡΠ°ΠΌΠΎΠ΅ ΠΈ Π·Π΄Π΅ΡΡ: ΡΡΠΎΠ±Ρ Π²ΡΡΠ΅ΡΡΡ Π±ΠΎΠ»ΡΡΠ΅Π΅ ΡΠΈΡΠ»ΠΎ ΠΈΠ· ΠΌΠ΅Π½ΡΡΠ΅Π³ΠΎ, ΠΊΠ°ΠΊ Π±Ρ Π·Π°Π½ΠΈΠΌΠ°Π΅ΡΡΡ Π΅Π΄ΠΈΠ½ΠΈΡΠ° ΠΈΠ· Π½Π΅ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠ΅Π³ΠΎ Π΄Π΅Π²ΡΡΠΎΠ³ΠΎ ΡΠ°Π·ΡΡΠ΄Π°. ΠΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΡΡ ΡΠ°ΠΊ: ΠΈΠ· ΡΠΈΡΠ»Π° (1)00000101 Π²ΡΡΠΈΡΠ°Π΅ΡΡΡ (0)00001010 ΠΈ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΡΡ (0)11111011 (Π½Π΅ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠΉ Π΄Π΅Π²ΡΡΡΠΉ ΡΠ°Π·ΡΡΠ΄ ΠΏΠΎΠΊΠ°Π·Π°Π½ Π² ΡΠΊΠΎΠ±ΠΊΠ°Ρ : ΠΏΠΎΡΠ»Π΅ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ° ΠΌΡ ΠΏΡΠΎ Π½Π΅Π³ΠΎ ΡΠ½ΠΎΠ²Π° Π·Π°Π±ΡΠ²Π°Π΅ΠΌ). ΠΡΠ»ΠΈ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠΈΡΠΎΠ²Π°ΡΡ ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΠΉ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΠΊΠ°ΠΊ Π·Π½Π°ΠΊΠΎΠ²ΠΎΠ΅ ΡΠ΅Π»ΠΎΠ΅, ΡΠΎ ΠΎΠ½ ΡΠ°Π²Π΅Π½ -5, Ρ.Π΅. ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΠΎΠΌΡ, ΡΡΠΎ ΠΈ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ. ΠΠΎ Ρ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ Π±Π΅Π·Π·Π½Π°ΠΊΠΎΠ²ΠΎΠΉ Π°ΡΠΈΡΠΌΠ΅ΡΠΈΠΊΠΈ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΡΡ, ΡΡΠΎ 5-10=251.
ΠΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΡ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΠΎΠ²Π°Π»ΠΈ ΡΠΈΡΡΠ°ΡΠΈΠΈ, ΠΊΠΎΠ³Π΄Π° ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΡΠΊΠ»Π°Π΄ΡΠ²Π°Π»ΡΡ Π² ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ΠΎΠ² (Π·Π½Π°ΠΊΠΎΠ²ΡΠΉ ΠΈΠ»ΠΈ Π±Π΅Π·Π·Π½Π°ΠΊΠΎΠ²ΡΠΉ), Π½ΠΎ Π½Π΅ ΡΠΊΠ»Π°Π΄ΡΠ²Π°Π»ΡΡ Π² Π΄ΡΡΠ³ΠΎΠΉ. Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ, ΡΡΠΎ Π±ΡΠ΄Π΅Ρ, Π΅ΡΠ»ΠΈ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π½Π΅ ΠΏΠΎΠΏΠ°Π΄Π°Π΅Ρ Π½ΠΈ Π² ΡΠΎΡ, Π½ΠΈ Π² Π΄ΡΡΠ³ΠΎΠΉ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½. ΠΡΡΡΡ Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΡΠ»ΠΎΠΆΠΈΡΡ 10000000 ΠΈ 10000000. ΠΡΠΈ ΡΠ°ΠΊΠΎΠΌ ΡΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ ΡΠ½ΠΎΠ²Π° ΠΏΠΎΡΠ²Π»ΡΠ΅ΡΡΡ Π½Π΅ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠΉ Π΄Π΅Π²ΡΡΡΠΉ ΡΠ°Π·ΡΡΠ΄, Π½ΠΎ Π½Π° ΡΡΠΎΡ ΡΠ°Π· ΠΈΠ· Π½Π΅Π³ΠΎ Π΅Π΄ΠΈΠ½ΠΈΡΠ° Π½Π΅ Π·Π°Π½ΠΈΠΌΠ°Π΅ΡΡΡ, Π° Π² Π½Π΅Π³ΠΎ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠΈΡΡΡ Π»ΠΈΡΠ½ΡΡ. ΠΠΎΠ»ΡΡΠ°Π΅ΡΡΡ (1)00000000. ΠΠ΅ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠΉ ΡΠ°Π·ΡΡΠ΄ ΠΏΠΎΡΠΎΠΌ ΠΈΠ³Π½ΠΎΡΠΈΡΡΠ΅ΡΡΡ. Π‘ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ Π·Π½Π°ΠΊΠΎΠ²ΠΎΠΉ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΈΠΈ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΡΡ, ΡΡΠΎ 128 + 128 = 0. Π‘ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ Π±Π΅Π·Π·Π½Π°ΠΊΠΎΠ²ΠΎΠΉ β ΡΡΠΎ -128 + (-128) = 0, Ρ.Π΅. ΠΎΠ±Π° ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ°, ΠΊΠ°ΠΊ ΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ ΠΎΠΆΠΈΠ΄Π°ΡΡ Ρ ΡΠ°ΠΌΠΎΠ³ΠΎ Π½Π°ΡΠ°Π»Π°, ΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡΡΡ Π½Π΅ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΡΠΌΠΈ.
ΠΠ½Π°ΠΊΠΎΠ²ΡΠ΅ ΡΠ΅Π»ΡΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Ρ Π² Delphi ΡΠΈΠΏΠ°ΠΌΠΈ ShortInt (N=8, Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ -128..127), SmallInt (N=16, Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ -32 768..32 767), LongInt (N=32, Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ -2 147 483 648..2 147 483 647) ΠΈ Int64 (N=64, Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ -9 223 372 036 854 775 808..9 223 372 036 854 775 807).
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅32-ΡΠ°Π·ΡΡΠ΄Π½ΡΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΡ Π½Π΅ ΠΌΠΎΠ³ΡΡ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ Ρ 64-ΡΠ°Π·ΡΡΠ΄Π½ΡΠΌΠΈ ΡΠΈΡΠ»Π°ΠΌΠΈ, ΠΏΠΎΡΡΠΎΠΌΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅Ρ ΠΊΠΎΠ΄, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ ΡΡΠΎ ΡΠΈΡΠ»ΠΎ ΠΏΠΎ ΡΠ°ΡΡΡΠΌ. Π‘Π½Π°ΡΠ°Π»Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ ΡΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈΠ»ΠΈ Π²ΡΡΠΈΡΠ°Π½ΠΈΡ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π½Π°Π΄ ΠΌΠ»Π°Π΄ΡΠΈΠΌΠΈ 32-ΠΌΡ ΡΠ°Π·ΡΡΠ΄Π°ΠΌΠΈ Π° ΠΏΠΎΡΠΎΠΌ β Π½Π°Π΄ ΡΡΠ°ΡΡΠΈΠΌΠΈ 32-ΠΌΡ, ΠΏΡΠΈΡΠ΅ΠΌ, Π΅ΡΠ»ΠΈ Π² ΠΏΠ΅ΡΠ²ΠΎΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π·Π°Π½ΠΈΠΌΠ°Π»Π°ΡΡ Π΅Π΄ΠΈΠ½ΠΈΡΠ° ΠΈΠ· Π½Π΅ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠ΅Π³ΠΎ (Π² ΡΠ°ΠΌΠΊΠ°Ρ Π΄Π°Π½Π½ΠΎΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ) 33-Π³ΠΎ ΡΠ°Π·ΡΡΠ΄Π° ΠΈΠ»ΠΈ Π΅Π΄ΠΈΠ½ΠΈΡΠ° ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠΈΠ»Π°ΡΡ Π² Π½Π΅Π³ΠΎ, ΠΏΡΠΈ Π²ΡΠΎΡΠΎΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΡΡΠ° Π΅Π΄ΠΈΠ½ΠΈΡΠ° ΡΡΠΈΡΡΠ²Π°Π΅ΡΡΡ.
ΠΠ°Π»Π΅Π΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ², ΠΈΠ»Π»ΡΡΡΡΠΈΡΡΡΡΠΈΡ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠ΅.
3.1.2. ΠΡΡ ΠΎΠ΄ Π·Π° ΠΏΡΠ΅Π΄Π΅Π»Ρ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° ΠΏΡΠΈ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π½ΠΈΠΈ
ΠΠ°ΡΠ½Π΅ΠΌ Ρ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΡΡΠΎΠ³ΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠ° (Π»ΠΈΡΡΠΈΠ½Π³ 3.1. ΠΏΡΠΎΠ΅ΠΊΡ Assignment1 Π½Π° ΠΊΠΎΠΌΠΏΠ°ΠΊΡ-Π΄ΠΈΡΠΊΠ΅).
ΠΠΈΡΡΠΈΠ½Π³ 3.1. ΠΠ΅ΡΠ²Π½ΠΎΠ΅ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Π·Π½Π°ΠΊΠΎΠ²ΠΎΠ³ΠΎ ΡΠΈΡΠ»Π° Π² Π±Π΅Π·Π·Π½Π°ΠΊΠΎΠ²ΠΎΠ΅ ΠΏΡΠΈ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π½ΠΈΠΈprocedure TForm1.Button1Click(Sender: TObject);
var
X: Byte;
Y: ShortInt;
begin
Y := -1;
X := Y;
Label1.Caption := IntToStr(X);
end;
ΠΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΡΡΠΎΠ³ΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠ° Π±ΡΠ΄Π΅Ρ Π²ΡΠ²Π΅Π΄Π΅Π½ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ 255. ΠΠ΄Π΅ΡΡ ΠΌΡ ΡΡΠ°Π»ΠΊΠΈΠ²Π°Π΅ΠΌΡΡ Ρ ΡΠ΅ΠΌ, ΡΡΠΎ Π²ΡΠ΅ ΡΠ°Π·ΡΡΠ΄Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Y Π±Π΅Π· Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΎΠΊ ΠΊΠΎΠΏΠΈΡΡΡΡΡΡ Π² X, Π½ΠΎ Π΅ΡΠ»ΠΈ Y ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠΈΡΡΠ΅ΡΡΡ ΠΊΠ°ΠΊ Π·Π½Π°ΠΊΠΎΠ²ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ, ΡΠΎ X β ΠΊΠ°ΠΊ Π±Π΅Π·Π·Π½Π°ΠΊΠΎΠ²ΠΎΠ΅, Π° ΡΠΈΡΠ»Π°ΠΌ 255 ΠΈ -1 Π² Π²ΠΎΡΡΠΌΠΈΡΠ°Π·ΡΡΠ΄Π½ΠΎΠΌ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠΈ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ ΠΎΠ΄Π½Π° ΠΈ ΡΠ° ΠΆΠ΅ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΡ Π±ΠΈΡΠΎΠ².
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅ΠΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½Π°Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ Y ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΠ»Π°ΡΡ ΠΏΠΎΡΠΎΠΌΡ, ΡΡΠΎ ΠΏΡΡΠΌΠΎ ΠΏΡΠΈΡΠ²ΠΎΠΈΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, Π²ΡΡ ΠΎΠ΄ΡΡΠ΅Π΅ Π·Π° Π΅Π΅ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½, ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ Π½Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ β Π²ΠΎΠ·Π½ΠΈΠΊΠ½Π΅Ρ ΠΎΡΠΈΠ±ΠΊΠ° ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ "Constant expression violates subrange bounds".
Π‘ΡΡΠΎΠ³ΠΎ Π³ΠΎΠ²ΠΎΡΡ, Π² Delphi ΠΏΡΠ΅Π΄ΡΡΠΌΠΎΡΡΠ΅Π½Π° Π·Π°ΡΠΈΡΠ° ΠΎΡ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ³ΠΎ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π½ΠΈΡ. ΠΡΠ»ΠΈ Π²ΠΊΠ»ΡΡΠΈΡΡ ΠΎΠΏΡΠΈΡ Range checking (Π²ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΠΎΠΊΠ½Π΅ Project/Options... Π½Π° Π·Π°ΠΊΠ»Π°Π΄ΠΊΠ΅ Compiler ΠΈΠ»ΠΈ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²ΠΎΠΉ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ° {$R+} ΠΈΠ»ΠΈ {$RANGECHECKS ON}), ΡΠΎ ΠΏΡΠΈ ΠΏΠΎΠΏΡΡΠΊΠ΅ ΠΏΡΠΈΡΠ²ΠΎΠ΅Π½ΠΈΡ X := Y Π²ΠΎΠ·Π½ΠΈΠΊΠ½Π΅Ρ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ERangeError. ΠΠΎ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΡΡΠ° ΠΎΠΏΡΠΈΡ ΠΎΡΠΊΠ»ΡΡΠ΅Π½Π° (Π΄Π»Ρ ΠΏΠΎΠ²ΡΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ β Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΡΡΠ΅Π±ΡΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ), ΠΏΠΎΡΡΠΎΠΌΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π±Π΅Π· ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ΅ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΡΠ°ΠΊΠΎΠ΅ Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠ΅ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π½ΠΈΠ΅.
Π ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ (Π»ΠΈΡΡΠΈΠ½Π³ 3.2, ΠΏΡΠΎΠ΅ΠΊΡ Assignment2 Π½Π° ΠΊΠΎΠΌΠΏΠ°ΠΊΡ-Π΄ΠΈΡΠΊΠ΅) ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π½ΠΈΠ΅ ΡΠΈΡΠ»Ρ ΡΠ°ΠΊΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π½Π΅ ΡΠΊΠ»Π°Π΄ΡΠ²Π°Π΅ΡΡΡ Π½ΠΈ Π² Π·Π½Π°ΠΊΠΎΠ²ΡΠΉ, Π½ΠΈ Π² Π±Π΅Π·Π·Π½Π°ΠΊΠΎΠ²ΡΠΉ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½.
ΠΠΈΡΡΠΈΠ½Π³ 3.2. ΠΡΠΈΡΠ²Π°ΠΈΠ²Π°Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π·Π½Π°ΡΠ΅Π½ΠΈΡ, Π²ΡΡ ΠΎΠ΄ΡΡΠ΅Π³ΠΎ Π·Π° ΡΠ°ΠΌΠΊΠΈ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π°procedure TForm1.Button1Click(Sender: TObject);
var
X: Byte;
Y: Word;
begin
Y := 1618;
X := Y;
Label1.Caption := IntToStr(X)
end;
ΠΠ° ΡΠΊΡΠ°Π½Π΅ ΠΏΠΎΡΠ²ΠΈΡΡΡ ΡΠΈΡΠ»ΠΎ 82. Π Π°Π·Π±Π΅ΡΠ΅ΠΌΡΡ, ΠΏΠΎΡΠ΅ΠΌΡ ΡΡΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ. Π§ΠΈΡΠ»ΠΎ 1618 Π² Π΄Π²ΠΎΠΈΡΠ½ΠΎΠΉ Π·Π°ΠΏΠΈΡΠΈ ΡΠ°Π²Π½ΠΎ 00000110 01010010. ΠΡΠΈ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π½ΠΈΠΈ ΡΡΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ X ΡΡΠ°ΡΡΠΈΠ΅ Π²ΠΎΡΠ΅ΠΌΡ Π±ΠΈΡΠΎΠ² "Π½Π΅ΠΊΡΠ΄Π° Π΄Π΅Π²Π°ΡΡ", ΠΏΠΎΡΡΠΎΠΌΡ ΠΎΠ½ΠΈ ΠΏΡΠΎΡΡΠΎ ΠΈΠ³Π½ΠΎΡΠΈΡΡΡΡΡΡ. Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ Π² Π₯ Π·Π°ΠΏΠΈΡΡΠ²Π°Π΅ΡΡΡ ΡΠΈΡΠ»ΠΎ 01010010, Ρ.Π΅. 82.
Π Π°Π·ΡΠΌΠ΅Π΅ΡΡΡ, ΠΏΡΠΈ Π²ΠΊΠ»ΡΡΠ΅Π½Π½ΠΎΠΉ ΠΎΠΏΡΠΈΠΈ Range checking ΠΈ Π² ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΏΡΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ERangeError.
ΠΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΡ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡ Π΄Π²Π° ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠ° Π½Π΅ΠΎΠΆΠΈΠ΄Π°Π½Π½ΠΎΡΡΠ΅ΠΉ, Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡΡΠΈΡ ΠΏΡΠΈ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π½ΠΈΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠ΅Π»ΠΎΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ:
1. ΠΡΠΈ ΡΠΌΠ΅ΡΠ΅Π½ΠΈΠΈ Π·Π½Π°ΠΊΠΎΠ²ΡΡ ΠΈ Π±Π΅Π·Π·Π½Π°ΠΊΠΎΠ²ΡΡ ΡΠΈΡΠ΅Π» Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΌΠ΅Π½ΡΠ΅ΡΡΡ ΠΈΠ·-Π·Π° ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΡΡΠ°ΡΡΠΈΠΉ Π±ΠΈΡ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠΈΡΡΠ΅ΡΡΡ ΡΠΎ ΠΊΠ°ΠΊ Π·Π½Π°ΠΊ ΡΠΈΡΠ»Π°, ΡΠΎ ΠΊΠ°ΠΊ ΡΡΠ°ΡΡΠΈΠΉ ΡΠ°Π·ΡΡΠ΄.
2. ΠΡΠΈ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π½ΠΈΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π·Π½Π°ΡΠ΅Π½ΠΈΡ, ΡΡΠ΅Π±ΡΡΡΠ΅Π³ΠΎ Π±ΠΎΠ»ΡΡΠ΅Π³ΠΎ ΡΠΈΡΠ»Π° ΡΠ°Π·ΡΡΠ΄ΠΎΠ², "Π»ΠΈΡΠ½ΠΈΠ΅" ΡΠ°Π·ΡΡΠ΄Ρ ΠΏΡΠΎΡΡΠΎ ΠΈΠ³Π½ΠΎΡΠΈΡΡΡΡΡΡ.
ΠΡΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΠΏΡΠΈ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π½ΠΈΠΈ ΡΠ²ΠΎΠ΄ΡΡΡΡ ΠΊ ΠΎΠ΄Π½ΠΎΠΌΡ ΠΈΠ· ΡΡΠΈΡ ΡΠ»ΡΡΠ°Π΅Π² ΠΈΠ»ΠΈ ΠΊ ΠΈΡ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΠΈ.
ΠΡΠ΅ ΡΡΠΈ ΡΠΈΡΡΠ°ΡΠΈΠΈ ΠΏΡΠΈ Π²ΡΠΊΠ»ΡΡΠ΅Π½Π½ΠΎΠΉ ΠΎΠΏΡΠΈΠΈ Range checking ΠΏΡΠΈΠ²ΠΎΠ΄ΡΡ ΠΊ ΠΎΡΠΈΠ±ΠΊΠ°ΠΌ, ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ²Π°Π΅Ρ ΠΎΡΠ΅Π½Ρ ΡΡΡΠ΄Π½ΠΎ ΠΎΠ±Π½Π°ΡΡΠΆΠΈΡΡ. ΠΠ·-Π·Π° ΡΡΠΎΠ³ΠΎ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ Π²ΠΊΠ»ΡΡΠ°ΡΡ ΡΡΡ ΠΎΠΏΡΠΈΡ Ρ ΠΎΡΡ Π±Ρ Π½Π° ΡΡΠ°ΠΏΠ΅ ΠΎΡΠ»Π°Π΄ΠΊΠΈ.
Π Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΡΠ»ΡΡΠ°ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π½ΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ, Π²ΡΡ ΠΎΠ΄ΡΡΠΈΡ Π·Π° ΠΏΡΠ΅Π΄Π΅Π»Ρ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ, ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΠΉ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄Π»Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ "Ρ ΠΈΡΡΡΡ " Π°Π»Π³ΠΎΡΠΈΡΠΌΠΎΠ² ΠΈΠ»ΠΈ ΠΏΡΠΈ ΡΠΎΠΏΡΡΠΆΠ΅Π½ΠΈΠΈ ΡΡΠΎΡΠΎΠ½Π½ΠΈΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ, ΠΎΠ΄Π½Π° ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Π·Π½Π°ΠΊΠΎΠ²ΡΠ΅ ΡΠΈΠΏΡ, Π΄ΡΡΠ³Π°Ρ β Π±Π΅Π·Π·Π½Π°ΠΊΠΎΠ²ΡΠ΅). Π§ΡΠΎΠ±Ρ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ERangeError Π½Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π»ΠΎ, ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΏΡΠ΅Π΄ΡΡΠΌΠΎΡΡΠ΅ΡΡ ΡΠ²Π½ΠΎΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΡΠΈΠΏΠ°. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΠΊΠΎΠ΄ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π±Π΅Π· ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ ΠΏΡΠΈ Π²ΠΊΠ»ΡΡΠ΅Π½Π½ΠΎΠΉ ΠΎΠΏΡΠΈΠΈ Range checking (Π»ΠΈΡΡΠΈΠ½Π³ 3.3).
ΠΠΈΡΡΠΈΠ½Π³ 3.3. Π―Π²Π½ΠΎΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΡΠΈΠΏΠ° Π΄Π»Ρ ΠΏΠΎΠ΄Π°Π²Π»Π΅Π½ΠΈΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉprocedure TForm1.Button1Click(Sender: TObject);
var
X: Byte;
Y: ShortInt;
begin
Y := -1;
X := Byte(Y);
Label1.Caption := IntToStr(X)
end;
Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ Π΅Π³ΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ X ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ 255.
3.1.3. ΠΠ΅ΡΠ΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΡΠΈ Π°ΡΠΈΡΠΌΠ΅ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡΡ
ΠΠ΅ΡΠ΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ ΠΏΡΠΈΠ½ΡΡΠΎ Π½Π°Π·ΡΠ²Π°ΡΡ ΡΠΈΡΡΠ°ΡΠΈΡ, ΠΊΠΎΠ³Π΄Π° ΠΏΡΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡΡ Π½Π°Π΄ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π²ΡΡ ΠΎΠ΄ΠΈΡ Π·Π° ΠΏΡΠ΅Π΄Π΅Π»Ρ Π΅Π΅ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π°. Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΠΏΡΠΈΠΌΠ΅Ρ (Π»ΠΈΡΡΠΈΠ½Π³ 3.4, ΠΏΡΠΎΠ΅ΠΊΡ Overflow1 Π½Π° ΠΊΠΎΠΌΠΏΠ°ΠΊΡ-Π΄ΠΈΡΠΊΠ΅).
ΠΠΈΡΡΠΈΠ½Π³ 3.4. ΠΠ΅ΡΠ΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΡΠΈ Π²ΡΡΠΈΡΠ°Π½ΠΈΠΈprocedure TForm1.Button1Click(Sender: TObject);
var X: Byte;
begin
X := 0;
X := X - 1;
Label1.Caption := IntToStr(X)
end;
ΠΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ X ΠΏΠΎΠ»ΡΡΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ 255, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΏΡΠΈ Π²ΡΡΠΈΡΠ°Π½ΠΈΠΈ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΡΡ -1, ΡΡΠΎ Π² Π±Π΅Π·Π·Π½Π°ΠΊΠΎΠ²ΠΎΠΌ ΡΠΎΡΠΌΠ°ΡΠ΅ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ 255. Π ΠΏΡΠΈΠ½ΡΠΈΠΏΠ΅, ΡΡΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΠ΅Π½ ΠΏΡΠΈΠΌΠ΅ΡΡ Assignment1, Π·Π° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ ΡΠΎΠ³ΠΎ, ΡΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ -1 ΠΏΠΎΡΠ²Π»ΡΠ΅ΡΡΡ Π² ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ Π°ΡΠΈΡΠΌΠ΅ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ.
ΠΠ΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠΌ ΡΡΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ β Π·Π°ΠΌΠ΅Π½ΠΈΠΌ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ Π²ΡΡΠΈΡΠ°Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ Dec (Π»ΠΈΡΡΠΈΠ½Π³ 3.5, ΠΏΡΠΈΠΌΠ΅Ρ Overflow2 Π½Π° ΠΊΠΎΠΌΠΏΠ°ΠΊΡ-Π΄ΠΈΡΠΊΠ΅).
ΠΠΈΡΡΠΈΠ½Π³ 3.5. ΠΠ΅ΡΠ΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΡΠΈ Π΄Π΅ΠΊΡΠ΅ΠΌΠ΅Π½ΡΠ΅{$R+}
procedure TForm1.Button1Click(Sender: TObject);
var X: Byte;
begin
X := 0;
Dec(X);
Label1.Caption := IntToStr(X);
end;
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΡΡ ΡΠΎΡ ΠΆΠ΅ (X ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ 255), Π½ΠΎ ΠΎΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Π½Π΅ΡΠΌΠΎΡΡΡ Π½Π° ΡΠΎ, ΡΡΠΎ ΠΎΠΏΡΠΈΡ Range checking Π²ΠΊΠ»ΡΡΠ΅Π½Π°, ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π½Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ. ΠΡΠΈΠΌ ΠΏΡΠΈΠΌΠ΅Ρ Overflow2 ΠΎΡΠ»ΠΈΡΠ°Π΅ΡΡΡ ΠΎΡ Overflow1 β ΡΠ°ΠΌ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ½Π΅Ρ. Π‘Π²ΡΠ·Π°Π½ΠΎ ΡΡΠΎ Ρ ΡΠ΅ΠΌ, ΡΡΠΎ ΠΏΠ΅ΡΠ΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ Dec ΠΈ ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΡ Π΅ΠΉ ΡΡΠ½ΠΊΡΠΈΠΉ ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈΡΡΠ΅ΡΡΡ Π΄ΡΡΠ³ΠΎΠΉ ΠΎΠΏΡΠΈΠ΅ΠΉ β Overflow checking (Π² ΠΊΠΎΠ΄Π΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π²ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²ΠΎΠΉ {$Q+} ΠΈΠ»ΠΈ {$OVERFLOWCHECKS ON}). ΠΡΠ° ΠΎΠΏΡΠΈΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΡΠΎΠΆΠ΅ ΠΎΡΠΊΠ»ΡΡΠ΅Π½Π° ΠΈ Π΅Π΅ ΡΠ°ΠΊΠΆΠ΅ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ Π²ΠΊΠ»ΡΡΠ°ΡΡ ΠΏΡΠΈ ΠΎΡΠ»Π°Π΄ΠΊΠ΅. ΠΡΠΈ Π΅Π΅ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΠΈ Π² Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ½Π΅Ρ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ EIntOverflow.
3.1.4. Π‘ΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ Π·Π½Π°ΠΊΠΎΠ²ΠΎΠ³ΠΎ ΠΈ Π±Π΅Π·Π·Π½Π°ΠΊΠΎΠ²ΠΎΠ³ΠΎ ΡΠΈΡΠ»Π°