Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«Π―Π·Ρ‹ΠΊ программирования Π‘ΠΈ для ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°Β». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 10

Автор C. Π‘ΠΎΡ‡ΠΊΠΎΠ²

По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Ρ‚ΠΈΠΏ char всСгда ΠΈΠΌΠ΅Π΅Ρ‚ Π·Π½Π°ΠΊ. Однако сущСствуСт опция компилятора языка Π‘ΠΈ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π°Ρ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΠ΅ для char со Π·Π½Π°ΠΊΠΎΠ²ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° Π½Π° Π±Π΅Π·Π·Π½Π°ΠΊΠΎΠ²Ρ‹ΠΉ. Если эта опция Π·Π°Π΄Π°Π½Π°, Ρ‚ΠΎ сокращСниС char ΠΈΠΌΠ΅Π΅Ρ‚ Ρ‚ΠΎΡ‚ ΠΆΠ΅ смысл, Ρ‡Ρ‚ΠΎ ΠΈ unsigned char, ΠΈ, ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, для объявлСния символьной ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ со Π·Π½Π°ΠΊΠΎΠΌ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ записано ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово signed.

Π’Π°Π±Π»ΠΈΡ†Π° 3.2.

Π‘ΠΏΠ΅Ρ†ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ Ρ‚ΠΈΠΏΠΎΠ² ΠΈ ΠΈΡ… сокращСния БпСцификация Ρ‚ΠΈΠΏΠ° Π‘ΠΎΠΊΡ€Π°Ρ‰Π΅Π½ΠΈΠ΅ signed char char signed int signed, int signed short int short, signed short signed long int long, signed long unsigned char - unsigned int unsigned unsigned short int unsigned short unsigned long int unsigned long float - long float double long double double (БП MSC 5.0, БП TC 1.5) long double β€”(БП TC 2.0)

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅. Π’ Π΄Π°Π½Π½ΠΎΠΉ ΠΊΠ½ΠΈΠ³Π΅ Π² основном ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ сокращСнныС Ρ„ΠΎΡ€ΠΌΡ‹ записи спСцификаций Ρ‚ΠΈΠΏΠΎΠ², пСрСчислСнныС Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ 3.2; ΠΏΡ€ΠΈ этом прСдполагаСтся, Ρ‡Ρ‚ΠΎ Ρ‚ΠΈΠΏ char ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΈΠΌΠ΅Π΅Ρ‚ Π·Π½Π°ΠΊ.

ΠžΠ±Π»Π°ΡΡ‚ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ

ΠžΠ±Π»Π°ΡΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ β€” это ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π» ΠΎΡ‚ минимального Π΄ΠΎ максимального значСния, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ прСдставлСно Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π΄Π°Π½Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°. Π’ Ρ‚Π°Π±Π»ΠΈΡ†Π΅ 3.3 ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ Ρ€Π°Π·ΠΌΠ΅Ρ€ Π·Π°Π½ΠΈΠΌΠ°Π΅ΠΌΠΎΠΉ памяти ΠΈ области Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠ° void Π½Π΅ сущСствуСт, ΠΎΠ½ Π½Π΅ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ Π² эту Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ.

Π’Π°Π±Π»ΠΈΡ†Π° 3.3.

Π Π°Π·ΠΌΠ΅Ρ€ памяти ΠΈ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Ρ‚ΠΈΠΏΠΎΠ² Π’ΠΈΠΏ ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½ΠΈΠ΅ Π² памяти ΠžΠ±Π»Π°ΡΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ char 1 Π±Π°ΠΉΡ‚ ΠΎΡ‚ -128 Π΄ΠΎ 127 int зависит ΠΎΡ‚ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ   short 2 Π±Π°ΠΉΡ‚Π° ΠΎΡ‚ -32768 Π΄ΠΎ 32767 long 4 Π±Π°ΠΉΡ‚Π° ΠΎΡ‚ -2.147.483.648 Π΄ΠΎ 2.147.483.647 unsigned char 1 Π±Π°ΠΉΡ‚ ΠΎΡ‚ 0 Π΄ΠΎ 255 unsigned зависит ΠΎΡ‚ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ   unsigned short 2 Π±Π°ΠΉΡ‚Π° ΠΎΡ‚ 0 Π΄ΠΎ 65535 unsigned long 4 Π±Π°ΠΉΡ‚Π° ΠΎΡ‚ 0 Π΄ΠΎ 4.294.967.295 float 4 Π±Π°ΠΉΡ‚Π° стандартный Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ IEEE double 8 Π±Π°ΠΉΡ‚ΠΎΠ² стандартный Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ IEEE long double 10 Π±Π°ΠΉΡ‚ΠΎΠ² стандартный Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ IEEE

Π’ΠΈΠΏ char ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ для хранСния Π±ΡƒΠΊΠ²Ρ‹, Ρ†ΠΈΡ„Ρ€Ρ‹ ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ символа ΠΈΠ· мноТСства прСдставимых символов. Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Ρ‚ΠΈΠΏΠ° char являСтся ΠΊΠΎΠ΄, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ Π΄Π°Π½Π½ΠΎΠΌΡƒ символу. Π’ΠΈΠΏ char интСрпрСтируСтся ΠΊΠ°ΠΊ ΠΎΠ΄Π½ΠΎΠ±Π°ΠΉΡ‚ΠΎΠ²ΠΎΠ΅ Ρ†Π΅Π»ΠΎΠ΅ с ΠΎΠ±Π»Π°ΡΡ‚ΡŒΡŽ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΎΡ‚ -128 Π΄ΠΎ 127. Π’ΠΈΠΏ unsigned char ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ значСния Π² ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»Π΅ ΠΎΡ‚ 0 Π΄ΠΎ 255. Π’ частности, Π±ΡƒΠΊΠ²Ρ‹ русского Π°Π»Ρ„Π°Π²ΠΈΡ‚Π° ΠΈΠΌΠ΅ΡŽΡ‚ ΠΊΠΎΠ΄Ρ‹, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ Ρ‚ΠΈΠΏΡƒ unsigned char.

Π‘Π»Π΅Π΄ΡƒΠ΅Ρ‚ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ прСдставлСниС Π² памяти ΠΈ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ для Ρ‚ΠΈΠΏΠΎΠ² int ΠΈ unsigned int Π½Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Ρ‹ Π² языкС Π‘ΠΈ. Π’ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ систСм программирования Ρ€Π°Π·ΠΌΠ΅Ρ€ Ρ‚ΠΈΠΏΠ° int (со Π·Π½Π°ΠΊΠΎΠΌ ΠΈΠ»ΠΈ Π±Π΅Π· Π·Π½Π°ΠΊΠ°) соотвСтствуСт Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌΡƒ Ρ€Π°Π·ΠΌΠ΅Ρ€Ρƒ Ρ†Π΅Π»ΠΎΠ³ΠΎ машинного слова. НапримСр, Π½Π° 16-разрядном ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅ Ρ‚ΠΈΠΏ int Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ 16 разрядов, ΠΈΠ»ΠΈ 2 Π±Π°ΠΉΡ‚Π°. На 32-разрядном ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅ Ρ‚ΠΈΠΏ int Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ 32 разряда, ΠΈΠ»ΠΈ 4 Π±Π°ΠΉΡ‚Π°. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ‚ΠΈΠΏ int эквивалСнтСн Π»ΠΈΠ±ΠΎ Ρ‚ΠΈΠΏΡƒ short int (ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΎΠ΅ Ρ†Π΅Π»ΠΎΠ΅), Π»ΠΈΠ±ΠΎ Ρ‚ΠΈΠΏΡƒ long int (Π΄Π»ΠΈΠ½Π½ΠΎΠ΅ Ρ†Π΅Π»ΠΎΠ΅), Π² зависимости ΠΎΡ‚ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°. Аналогично, Ρ‚ΠΈΠΏ unsigned int эквивалСнтСн Π»ΠΈΠ±ΠΎ Ρ‚ΠΈΠΏΡƒ unsigned short int, Π»ΠΈΠ±ΠΎ Ρ‚ΠΈΠΏΡƒ unsigned long int. Однако рассматриваСмыС Π² Π΄Π°Π½Π½ΠΎΠΉ ΠΊΠ½ΠΈΠ³Π΅ компиляторы языка Π‘ΠΈ, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹Π΅ для ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ IBM PC с 16-разрядным ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΌ словом, ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ Π½Π° IBM PC/AT с процСссором Intel 80386 (ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠΌ 32-разрядноС машинноС слово) отводят для Ρ‚ΠΈΠΏΠ° int ΠΈ unsigned int Ρ‚ΠΎΠ»ΡŒΠΊΠΎ 16 разрядов.

Π‘ΠΏΠ΅Ρ†ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ Ρ‚ΠΈΠΏΠΎΠ² int ΠΈ unsigned int ΡˆΠΈΡ€ΠΎΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ… Π½Π° Π‘ΠΈ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ½ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ эффСктивно Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с Ρ†Π΅Π»Ρ‹ΠΌΠΈ значСниями Π½Π° Π΄Π°Π½Π½ΠΎΠΌ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅. Однако, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Ρ€Π°Π·ΠΌΠ΅Ρ€ Ρ‚ΠΈΠΏΠΎΠ² int ΠΈ unsigned int являСтся машинно-зависимым, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, зависящиС ΠΎΡ‚ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° Ρ‚ΠΈΠΏΠ° int ΠΈΠ»ΠΈ unsigned int Π½Π° ΠΊΠ°ΠΊΠΎΠΌ-Π»ΠΈΠ±ΠΎ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅, ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ нСпСрСносимы Π½Π° Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€. ΠŸΠ΅Ρ€Π΅Π½ΠΎΡΠΈΠΌΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ²Ρ‹ΡΠΈΡ‚ΡŒ, Ссли ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для ссылки Π½Π° Ρ€Π°Π·ΠΌΠ΅Ρ€ Ρ‚ΠΈΠΏΠ° Π΄Π°Π½Π½Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ sizeof.

ΠŸΠΎΡ€ΡΠ΄ΠΎΠΊ размСщСния Π±Π°ΠΉΡ‚ΠΎΠ² Π² памяти для Π±Π°Π·ΠΎΠ²Ρ‹Ρ… Ρ†Π΅Π»Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ (ΠΏΠΎ Π²ΠΎΠ·Ρ€Π°ΡΡ‚Π°Π½ΠΈΡŽ адрСсов):

для Ρ‚ΠΈΠΏΠ° short β€” b0, b1;

для Ρ‚ΠΈΠΏΠ° long β€” b0, b1, b2, b3,

Π³Π΄Π΅ b0β€”ΠΌΠ»Π°Π΄ΡˆΠΈΠΉ Π±Π°ΠΉΡ‚.

АрхитСктура процСссора Intel 8086/88 позволяСт Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΎΠ³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° Π² памяти, ΠΊΠ°ΠΊ с Ρ‡Π΅Ρ‚Π½ΠΎΠ³ΠΎ, Ρ‚Π°ΠΊ ΠΈ с Π½Π΅Ρ‡Π΅Ρ‚Π½ΠΎΠ³ΠΎ адрСса. Однако Π² послСднСм случаС ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ ΠΊ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌ Π±ΡƒΠ΄Π΅Ρ‚ Π±ΠΎΠ»Π΅Π΅ ΠΌΠ΅Π΄Π»Π΅Π½Π½Ρ‹ΠΌ. Π’ БП TC сущСствуСт опция компиляции, Π·Π°Π΄Π°ΡŽΡ‰Π°Ρ Π²Ρ‹Ρ€Π°Π²Π½ΠΈΠ²Π°Π½ΠΈΠ΅ всСх ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², Π·Π°Π½ΠΈΠΌΠ°ΡŽΡ‰ΠΈΡ… Π±ΠΎΠ»Π΅Π΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π±Π°ΠΉΡ‚Π°, Π½Π° Π³Ρ€Π°Π½ΠΈΡ†Ρƒ Ρ‡Π΅Ρ‚Π½ΠΎΠ³ΠΎ адрСса. ΠŸΠ°ΠΌΡΡ‚ΡŒ ΠΏΡ€ΠΈ этом Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΌΠ΅Π½Π΅Π΅ эффСктивно, Π½ΠΎ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ обращСния ΠΊ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌ возрастСт. Π’ БП MSC ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ производится Π²Ρ‹Ρ€Π°Π²Π½ΠΈΠ²Π°Π½ΠΈΠ΅ Π½Π° Π³Ρ€Π°Π½ΠΈΡ†Ρƒ Ρ‡Π΅Ρ‚Π½ΠΎΠ³ΠΎ адрСса. Π’ вСрсии 5.0 БП MSC сущСствуСт опция компиляции, ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‰Π°Ρ Π²Ρ‹Ρ€Π°Π²Π½ΠΈΠ²Π°Π½ΠΈΠ΅ Π½Π° Π³Ρ€Π°Π½ΠΈΡ†Ρƒ, Π·Π°Π΄Π°Π½Π½ΡƒΡŽ программистом. Вопросы выравнивания структур Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°ΡŽΡ‚ΡΡ Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ 3.4.3.

Богласно ΠΏΡ€Π°Π²ΠΈΠ»Π°ΠΌ прСобразования Ρ‚ΠΈΠΏΠΎΠ² Π² языкС Π‘ΠΈ (см. Ρ€Π°Π·Π΄Π΅Π» 5 "ВыраТСния"), Π½Π΅ всСгда Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ максимальноС ΠΈΠ»ΠΈ минимальноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ для константы Π΄Π°Π½Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°.

Допустим, трСбуСтся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ -32768 Ρ‚ΠΈΠΏΠ° short. ΠšΠΎΠ½ΡΡ‚Π°Π½Ρ‚Π½ΠΎΠ΅ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ -32768 состоит ΠΈΠ· арифмСтичСской ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ отрицания (-), ΠΏΡ€Π΅Π΄ΡˆΠ΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΉ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ константы 32768. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 32768 слишком Π²Π΅Π»ΠΈΠΊΠΎ для Ρ‚ΠΈΠΏΠ° short, компилятор языка Π‘ΠΈ прСдставляСт Π΅Π³ΠΎ Ρ‚ΠΈΠΏΠΎΠΌ long ΠΈ, ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, константа -32768 Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Ρ‚ΠΈΠΏ long. Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ -32768 ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ прСдставлСно Ρ‚ΠΈΠΏΠΎΠΌ short Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡƒΡ‚Π΅ΠΌ явного привСдСния Π΅Π³ΠΎ ΠΊ Ρ‚ΠΈΠΏΡƒ short с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ выраТСния (short) (‑32768). Π˜Π½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡ ΠΏΡ€ΠΈ этом Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ потСряна, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ -32768 ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ прСдставлСно двумя Π±Π°ΠΉΡ‚Π°ΠΌΠΈ памяти.

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

БП Π’Π‘ позволяСт явно ΠΏΡ€ΠΈΡΠ²Π°ΠΈΠ²Π°Ρ‚ΡŒ константам Π±Π΅Π·Π·Π½Π°ΠΊΠΎΠ²Ρ‹ΠΉ Ρ‚ΠΈΠΏ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ суффикса u.

Для прСдставлСния Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ стандартный Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ IEEE (Institute of Electrical and Electronics Engineers, Inc.). ЗначСния Ρ‚ΠΈΠΏΠ° float Π·Π°Π½ΠΈΠΌΠ°ΡŽΡ‚ 4 Π±Π°ΠΉΡ‚Π°, состоящих ΠΈΠ· Π±ΠΈΡ‚Π° Π·Π½Π°ΠΊΠ°, 7-Π±ΠΈΡ‚ΠΎΠ²ΠΎΠΉ Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠΉ экспонСнты ΠΈ 24-Π±ΠΈΡ‚ΠΎΠ²ΠΎΠΉ мантиссы. ΠœΠ°Π½Ρ‚ΠΈΡΡΠ° прСдставляСт число Π² ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»Π΅ ΠΎΡ‚ 1.0 Π΄ΠΎ 2.0. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΡΡ‚Π°Ρ€ΡˆΠΈΠΉ Π±ΠΈΡ‚ мантиссы всСгда Ρ€Π°Π²Π΅Π½ Π΅Π΄ΠΈΠ½ΠΈΡ†Π΅, ΠΎΠ½ Π½Π΅ хранится Π² памяти. Π­Ρ‚ΠΎ прСдставлСниС Π΄Π°Π΅Ρ‚ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΏΡ€ΠΈΠ±Π»ΠΈΠ·ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΎΡ‚ 3.4Π•-38 Π΄ΠΎ 3.4Π•+38.

ЗначСния Ρ‚ΠΈΠΏΠ° double Π·Π°Π½ΠΈΠΌΠ°ΡŽΡ‚ 8 Π±Π°ΠΉΡ‚ΠΎΠ². Π˜Ρ… Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π΅Π½ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρƒ float, Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ экспонСнта Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ 11 Π±ΠΈΡ‚ΠΎΠ², Π° мантисса 52 Π±ΠΈΡ‚Π° плюс нСявный ΡΡ‚Π°Ρ€ΡˆΠΈΠΉ Π±ΠΈΡ‚, Π΅Π΄ΠΈΠ½ΠΈΡ‡Π½Ρ‹ΠΉ. Π­Ρ‚ΠΎ Π΄Π°Π΅Ρ‚ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΏΡ€ΠΈΠ±Π»ΠΈΠ·ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΎΡ‚ 1.7Π•-308 Π΄ΠΎ 1.7Π•+308.

ЗначСния Ρ‚ΠΈΠΏΠ° long double Π·Π°Π½ΠΈΠΌΠ°ΡŽΡ‚ 80 Π±ΠΈΡ‚ΠΎΠ²; ΠΈΡ… ΠΎΠ±Π»Π°ΡΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉβ€”ΠΎΡ‚ 3.4Π•-4932 Π΄ΠΎ 1.1Π•+4932. Π€ΠΎΡ€ΠΌΠ°Ρ‚ ΠΈΡ… Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π΅Π½ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρƒ double, ΠΎΠ΄Π½Π°ΠΊΠΎ, мантисса Π΄Π»ΠΈΠ½Π½Π΅Π΅ Π½Π° 16 Π±ΠΈΡ‚ΠΎΠ².

ΠžΠΏΠΈΡΠ°Ρ‚Π΅Π»ΠΈ

Бинтаксис описатСлСй

Бинтаксис описатСлСй рСкурсивными ΠΏΡ€Π°Π²ΠΈΠ»Π°ΠΌΠΈ:

<ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€>

<ΠΎΠΏΠΈΡΠ°Ρ‚Π΅Π»ΡŒ> []

<ΠΎΠΏΠΈΡΠ°Ρ‚Π΅Π»ΡŒ> [<константноС-Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅>]

*<ΠΎΠΏΠΈΡΠ°Ρ‚Π΅Π»ΡŒ>

<ΠΎΠΏΠΈΡΠ°Ρ‚Π΅Π»ΡŒ>()

<ΠΎΠΏΠΈΡΠ°Ρ‚Π΅Π»ΡŒ>(<список Ρ‚ΠΈΠΏΠΎΠ² Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ²>)

(<ΠΎΠΏΠΈΡΠ°Ρ‚Π΅Π»ΡŒ>)

ΠžΠΏΠΈΡΠ°Ρ‚Π΅Π»ΠΈ Π² языкС Π‘ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹: простыС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅, массивы, ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. Π’ ΠΏΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠ΅ΠΌ случаС, Ссли ΠΎΠ±ΡŠΡΠ²Π»ΡΠ΅Ρ‚ΡΡ простая пСрСмСнная Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°, Π»ΠΈΠ±ΠΎ структура, Π»ΠΈΠ±ΠΎ объСдинСниС, ΠΎΠΏΠΈΡΠ°Ρ‚Π΅Π»ΡŒ прСдставляСт собой ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€. ΠŸΡ€ΠΈ этом ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρƒ присваиваСтся Ρ‚ΠΈΠΏ, Π·Π°Π΄Π°Π½Π½Ρ‹ΠΉ спСцификациСй Ρ‚ΠΈΠΏΠ°.