Unsigned int unsigned long int: visual studio — C++ difference between unsigned int and unsigned long int

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅

C++ Ρ€Π°Π·Π½ΠΈΡ†Π° ΠΌΠ΅ΠΆΠ΄Ρƒ unsigned int ΠΈ unsigned long int

Π’ стандартС C++ гарантируСтся, Ρ‡Ρ‚ΠΎ unsigned int ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ значСния Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΡ‚ 0 Π΄ΠΎ 65535 . ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠΈ это соотвСтствуСт 16 Π±ΠΈΡ‚Π°ΠΌ. Π Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ (Ρ‚. Π΅. компиляторы) ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ unsigned int с большим Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ΠΎΠΌ, Π½ΠΎ это Π½Π΅ трСбуСтся.

Для сравнСния, unsigned long int Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎ смоТСт ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ значСния Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ ΠΎΡ‚ 0 Π΄ΠΎ 4294967295 . ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠΈ это соотвСтствуСт 32 Π±ΠΈΡ‚Π°ΠΌ. ΠžΠΏΡΡ‚ΡŒ ΠΆΠ΅, рСализация ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ ΡˆΠΈΡ€ΠΎΠΊΠΈΠΉ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½.

Π”ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Ρ‹ ΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹ этих Ρ‚ΠΈΠΏΠΎΠ² ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ΡΡ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ. РСализация Π΄ΠΎΠ»ΠΆΠ½Π° ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌ трСбованиям ΠΈ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΎΠ½Π° Π²Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚.

НСрСдко Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ unsigned int ΠΈ unsigned long int , ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ 32-разрядными. Или для ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ ΠΎΠ±ΠΎΠΈΡ… Π΄ΠΎ be 64 Π±ΠΈΡ‚Π°. Как Π²Ρ‹ ΡƒΠΆΠ΅ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΠ»ΠΈ, Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ для Visual Studio 2015 ΡƒΠΊΠ°Π·Π°Π½ΠΎ, Ρ‡Ρ‚ΠΎ ΠΈ unsigned int , ΠΈ unsigned long int ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ значСния ΠΎΡ‚ 0 Π΄ΠΎ 4294967295 .

Для компилятора, Ρ‚Π°ΠΊΠΎΠ³ΠΎ ΠΊΠ°ΠΊ g++, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π½Π°Ρ†Π΅Π»Π΅Π½ Π½Π° Ρ†Π΅Π»Ρ‹ΠΉ ряд систСм, Π²Ρ‹Π±ΠΎΡ€ часто опрСдСляСтся Ρ†Π΅Π»Π΅Π²ΠΎΠΉ систСмой. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, сборка g++ для 32-разрядной систСмы ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ Ρ€Π°Π·Π½Ρ‹Π΅ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Ρ‹ для unsigned long , Ρ‡Π΅ΠΌ сборка для систСмы 64-bit.

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚Π²Π΅Ρ‚ΠΈΡ‚ΡŒ Π½Π° ваши вопросы

Для Π΄Π»ΠΈΠ½Π½Ρ‹Ρ… 64 Π±ΠΈΡ‚ Π±Π΅Π· Π·Π½Π°ΠΊΠ° Π²Ρ‹Ρ…ΠΎΠ΄ Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Ρ‹ ΠΏΠΎΡ‚ΠΎΠ»ΠΊΠ° 4 294 967 295 являСтся Π½Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ΠΌ ΠΈΠ»ΠΈ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΌ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ΠΌ?

Он ΠΈΠΌΠ΅Π΅Ρ‚ Ρ‡Π΅Ρ‚ΠΊΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅, хотя ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π΅ Π΄Π°Ρ‚ΡŒ ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌΡ‹Ρ… Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ². ЦСлочислСнныС Ρ‚ΠΈΠΏΡ‹ Π±Π΅Π· Π·Π½Π°ΠΊΠ° Π² C++ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Π°Ρ€ΠΈΡ„ΠΌΠ΅Ρ‚ΠΈΠΊΡƒ ΠΏΠΎ ΠΌΠΎΠ΄ΡƒΠ»ΡŽ. Π˜Π½Ρ‚Π΅Π³Ρ€Π°Π»ΡŒΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ (Ρ‚ΠΈΠΏΠ°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ больший Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½), находящССся Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Π°ΠΌΠΈ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° ΠΎΡ‚ 0 Π΄ΠΎ 4294967295 , Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΎ Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ΠΎ Π½Π°Ρ…ΠΎΠ΄ΠΈΠ»ΠΎΡΡŒ Π² этом Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ (матСматичСски эквивалСнтно ΠΌΠ½ΠΎΠ³ΠΎΠΊΡ€Π°Ρ‚Π½ΠΎΠΌΡƒ добавлСнию ΠΈΠ»ΠΈ Π²Ρ‹Ρ‡ΠΈΡ‚Π°Π½ΠΈΡŽ 4294967296 [ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° послСднюю Ρ†ΠΈΡ„Ρ€Ρƒ]). Π”Ρ€ΡƒΠ³ΠΈΠΌΠΈ словами, это Π±ΡƒΠ΄Π΅Ρ‚ «wrap around».

Если Ρƒ мСня Π΅ΡΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰Π΅Π΅ Π² систСмС Windows, скомпилированной Π² Visual Studio, Π² основном unsigned == unsigned long. ΠŸΡ€Π°Π²Π΄Π° ΠΈΠ»ΠΈ лоТь?

ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Ρ, Ρ‡Ρ‚ΠΎ Visual Studio 2015 это ΠΏΡ€Π°Π²Π΄Π°, ΠΊΠ°ΠΊ говорится Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π²Ρ‹ ΡΡΡ‹Π»Π°Π΅Ρ‚Π΅ΡΡŒ. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΠ»ΠΈ Π½Π΅ Π±Ρ‹Ρ‚ΡŒ Π²Π΅Ρ€Π½ΠΎ для Π±ΡƒΠ΄ΡƒΡ‰ΠΈΡ… ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΎΠ² Microsoft — это Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ.

Если Ρƒ мСня Π΅ΡΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, скомпилированноС компилятором GNU, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠΌ Π½Π°Π΄ Linux/Windows, я Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ, являСтся Π»ΠΈ unsigned long == unsigned int ΠΈΠ»ΠΈ unsigned long == unsigned long long, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ пСрСполнСния Π΄Π°Π½Π½Ρ‹Ρ…. ΠŸΡ€Π°Π²Π΄Π° ΠΈΠ»ΠΈ Π›ΠΎΠΆΡŒ

На самом дСлС, лоТь.

Π­Ρ‚ΠΎ Π²Π΅Ρ€Π½ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Ρ‚ΠΎΠΌ случаС, Ссли Π²Ρ‹ пСрСноситС ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ опираСтся Π½Π° эти прСдполоТСния.

Π‘ΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ваш ΠΊΠΎΠ΄ Π½Π΅ полагался Π½Π° ΠΈΡΡ‚ΠΈΠ½Π½ΠΎΡΡ‚ΡŒ Ρ‚Π°ΠΊΠΈΡ… ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. НапримСр, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ бСзопасно ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ, ΠΊΠΎΠ³Π΄Π° опСрация, Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰Π°Ρ Π΄Π²Π° значСния unsigned , пСрСполняСтся ΠΈΠ»ΠΈ пСрСполняСтся, ΠΈ Π² любом случаС ΠΏΡ€Π΅Π΄ΠΏΡ€ΠΈΠ½ΡΡ‚ΡŒ дСйствия для получСния Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΡ‹Ρ… Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ². Если всС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€Π΅Π½Ρ‹ Π½Π°Π΄Π»Π΅ΠΆΠ°Ρ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ зависимости ΠΎΡ‚ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Ρ… Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠ² Ρ‚ΠΈΠΏΠΎΠ².

Если Ρƒ мСня Π΅ΡΡ‚ΡŒ кроссплатформСнноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ скомпилировано всСми этими компиляторами Visual Studio/GNU/Clang/Intel, я Π΄ΠΎΠ»ΠΆΠ΅Π½ Ρ‡Π΅Ρ‚ΠΊΠΎ ΠΊΠ»Π°ΡΡΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ срСду с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ мноТСства прСпроцСссоров, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ пСрСполнСния Π΄Π°Π½Π½Ρ‹Ρ…. ΠŸΡ€Π°Π²Π΄Π° ΠΈΠ»ΠΈ Π›ΠΎΠΆΡŒ

НС совсСм Ρ‚Π°ΠΊ. ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠΈ, часто Π²Π΅Ρ€Π½ΠΎ.

Если ваш ΠΊΠΎΠ΄ придСрТиваСтся областСй стандартного C++, ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠ΅ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ этого (ΠΊΠ°ΠΊ я ΡƒΠΏΠΎΠΌΠΈΠ½Π°Π» Π²Ρ‹ΡˆΠ΅, с Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ зависимости ΠΎΡ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠ² Ρ‚ΠΈΠΏΠΎΠ² Π±Π΅Π· Π·Π½Π°ΠΊΠ°).

Если ваш ΠΊΠΎΠ΄ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΈΠ»ΠΈ прСдоставляСт ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ для Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ находятся Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Π°ΠΌΠΈ стандарта C++ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ windows API, posix, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ входят Π² стандарт C++), Ρ‚ΠΎ это часто Π±ΡƒΠ΄Π΅Ρ‚ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ. Π”Π°ΠΆΠ΅ Π² этих случаях ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… Π²Π΅Ρ‰Π΅ΠΉ. НапримСр, помСститС вСрсии Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΠ΅ windows API, Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ источник, Ρ‡Π΅ΠΌ вСрсии, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΠ΅ posix. И настройтС процСсс сборки (makefile ΠΈ Ρ‚. Π”.) — Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ссли Π²Ρ‹ строитС для windows, Π½Π΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠΉΡ‚Π΅ ΠΈ Π½Π΅ связывайтС вСрсии unix.

Π’ Ρ‡Π΅ΠΌ Ρ€Π°Π·Π½ΠΈΡ†Π° ΠΌΠ΅ΠΆΠ΄Ρƒ unsigned long ΠΈ unsigned long long?

Π― ΠΎΠΆΠΈΠ΄Π°Π», Ρ‡Ρ‚ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€ Π±ΡƒΠ΄Π΅Ρ‚ Π΄Ρ€ΡƒΠ³ΠΈΠΌ. Но ΠΎΠ±Π° ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ 8 Π±Π°ΠΉΡ‚.

#include <iostream>
using namespace std;
int main()
{
    cout<<"Size of long:"<<sizeof(unsigned long)<<"\n";
    cout<<"Size of Long Long:"<< sizeof(unsigned long long)<<"\n";
}

Output:
Size of long:8
Size of Long Long:8

c++

long-integer

ΠŸΠΎΠ΄Π΅Π»ΠΈΡ‚ΡŒΡΡ

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


cppcoder Β  Β 

08 ΠΌΠ°Ρ€Ρ‚Π° 2012 Π² 04:40

3 ΠΎΡ‚Π²Π΅Ρ‚Π°


  • C++ Ρ€Π°Π·Π½ΠΈΡ†Π° ΠΌΠ΅ΠΆΠ΄Ρƒ unsigned int ΠΈ unsigned long int

    Π― занимаюсь Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΎΠΉ C++ Π½Π° Windows с компилятором Visual Studio, Π² частности Visual Studio 2015 Update 3. Для Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Ρ€Π°Π±ΠΎΡ‚, связанных с DSP, я ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽ unsigned int / unsigned long Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ…. МнС Π±Ρ‹Π»ΠΎ интСрСсно, Π² Ρ‡Π΅ΠΌ Ρ€Π°Π·Π½ΠΈΡ†Π° ΠΌΠ΅ΠΆΠ΄Ρƒ этими двумя встроСнными Ρ‚ΠΈΠΏΠ°ΠΌΠΈ C/C++. Π― Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ поискал Π²…

  • Π Π°Π·Π½ΠΈΡ†Π° ΠΌΠ΅ΠΆΠ΄Ρƒ unsigned long ΠΈ UINT64

    Π’ Ρ‡Π΅ΠΌ Ρ€Π°Π·Π½ΠΈΡ†Π° ΠΌΠ΅ΠΆΠ΄Ρƒ unsigned long ΠΈ UINT64 ? Π― Π΄ΡƒΠΌΠ°ΡŽ, Ρ‡Ρ‚ΠΎ это ΠΎΠ΄Π½ΠΎ ΠΈ Ρ‚ΠΎ ΠΆΠ΅, Π½ΠΎ я Π½Π΅ ΡƒΠ²Π΅Ρ€Π΅Π½. ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ UINT64 являСтся : typedef unsigned __int64 UINT64 (с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ StdAfx.h)



10

Π­Ρ‚ΠΎ Π΄Π²Π° Ρ€Π°Π·Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠ°, Π΄Π°ΠΆΠ΅ Ссли ΠΎΠ½ΠΈ ΠΈΠΌΠ΅ΡŽΡ‚ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΈ прСдставлСниС Π² ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ.

unsigned long Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ 32 Π±ΠΈΡ‚. unsigned long long Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ 64 Π±ΠΈΡ‚. (На самом Π΄Π΅Π»Π΅ трСбования сформулированы Π² Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Ρ… Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ΠΎΠ² Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ.)

Как Π²Ρ‹ ΡƒΠΆΠ΅ Π²ΠΈΠ΄Π΅Π»ΠΈ, это согласуСтся с Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ ΠΎΠ±Π° ΠΈΠΌΠ΅ΡŽΡ‚ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€, Ссли этот Ρ€Π°Π·ΠΌΠ΅Ρ€ составляСт Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ 64 Π±ΠΈΡ‚.

Π’ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ случаСв Ρ‚ΠΎΡ‚ Ρ„Π°ΠΊΡ‚, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ ΡΠ²Π»ΡΡŽΡ‚ΡΡ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ Ρ‚ΠΈΠΏΠ°ΠΌΠΈ, Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ большого значСния (Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°Π²ΠΈΡΠ΅Ρ‚ΡŒ ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ ΠΎΠ±Π° ΠΈΠΌΠ΅ΡŽΡ‚ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΉ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ). НапримСр, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°Π·Π½Π°Ρ‡ΠΈΡ‚ΡŒ unsigned long long ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρƒ unsigned long , ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΎ нСявно, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, с Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΏΠΎΡ‚Π΅Ρ€Π΅ΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ. Аналогично, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ unsigned long long Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ , ΠΎΠΆΠΈΠ΄Π°ΡŽΡ‰Π΅ΠΉ unsigned long (Ссли Ρ‚ΠΎΠ»ΡŒΠΊΠΎ функция Π½Π΅ являСтся ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ printf ; Ρ‚ΠΎΠ³Π΄Π° трСбуСтся явноС ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅).

Но ΠΎΠ΄ΠΈΠ½ случай, ΠΊΠΎΠ³Π΄Π° это Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΈΠΌΠ΅Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, — это ΠΊΠΎΠ³Π΄Π° Ρƒ вас Π΅ΡΡ‚ΡŒ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ . Π’ΠΈΠΏΡ‹ unsigned long* ΠΈ unsigned long long* Π½Π΅ просто Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹, ΠΎΠ½ΠΈ Π½Π΅ совмСстимы с Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Π½Π΅Ρ‚ нСявного прСобразования ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ. НапримСр, эта ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°:

int main()
{   
    unsigned long*      ulp  = 0;
    unsigned long long* ullp = 0;
    ulp = ullp; // illegal
}

ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅, ΠΊΠΎΠ³Π΄Π° я ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΡŽ Π΅Π³ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ g++:

c.cpp: In function β€˜int main()’:
c.cpp:5:11: error: cannot convert β€˜long long unsigned int*’ to β€˜long unsigned int*’ in assignment

Π•Ρ‰Π΅ ΠΎΠ΄Π½ΠΎ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅: стандарт C++ Π½Π΅ добавлял Ρ‚ΠΈΠΏΡ‹ long long ΠΈ unsigned long long Π΄ΠΎ 2011 Π³ΠΎΠ΄Π°. C Π΄ΠΎΠ±Π°Π²ΠΈΠ» ΠΈΡ… Π² стандарт 1999 Π³ΠΎΠ΄Π°, ΠΈ это Π½Π΅ Ρ€Π΅Π΄ΠΊΠΎΡΡ‚ΡŒ для компиляторов pre-C++2011 (ΠΈ pre-C99), ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΡ… ΠΈΡ… Π² качСствС Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ.

ΠŸΠΎΠ΄Π΅Π»ΠΈΡ‚ΡŒΡΡ


Keith Thompson Β  Β 

08 ΠΌΠ°Ρ€Ρ‚Π° 2012 Π² 04:44


ΠŸΠΎΠ΄Π΅Π»ΠΈΡ‚ΡŒΡΡ


Vijay Agrawal Β  Β 

08 ΠΌΠ°Ρ€Ρ‚Π° 2012 Π² 04:49



0

Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚ гласит , Ρ‡Ρ‚ΠΎ long long Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎ ΠΊΡ€Π°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅Ρ€Π΅ Ρ‚ΠΎΠ³ΠΎ ΠΆΠ΅ Ρ€Π°Π·ΠΌΠ΅Ρ€Π°, Ρ‡Ρ‚ΠΎ ΠΈ long, ΠΈΠ»ΠΈ большС. БоотвСтствСнно для Ρ‚ΠΈΠΏΠΎΠ² unsigned , long ΠΈ int .

ЀактичСскиС значСния зависят ΠΎΡ‚ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈ Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½ΠΎΠ³ΠΎ обСспСчСния.

ΠŸΠΎΠ΄Π΅Π»ΠΈΡ‚ΡŒΡΡ


J.N. Β  Β 

08 ΠΌΠ°Ρ€Ρ‚Π° 2012 Π² 04:44


  • Π’ Ρ‡Π΅ΠΌ Ρ€Π°Π·Π½ΠΈΡ†Π° ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ unsigned int 2 Ρ€Π°Π·Π° ΠΈ unsigned long 1 Ρ€Π°Π· Π² систСмах 64 bit?

    Π’ Ρ‡Π΅ΠΌ Ρ€Π°Π·Π½ΠΈΡ†Π° ΠΌΠ΅ΠΆΠ΄Ρƒ *(unsigned*)d = *(unsigned*)s; d+=4; s+=4; *(unsigned*)d = *(unsigned*)s; d+=4; s+=4; ΠΈ *(unsigned long*)d = *(unsigned long*)s; d+=8; s+=8; Π½Π° 64-Π±ΠΈΡ‚Π½Ρ‹Ρ… систСмах?

  • unsigned long long to binary

    Π― ΠΏΡ‹Ρ‚Π°ΡŽΡΡŒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ установлСнныС Π±ΠΈΡ‚Ρ‹ unsigned long long Π² c++, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹ΠΉ Π½ΠΈΠΆΠ΅ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ провСряСт, установлСн Π»ΠΈ Π±ΠΈΡ‚ ΠΈΠ»ΠΈ Π½Π΅Ρ‚. Но моя ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΎΡ‚Π²Π΅Ρ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ я ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽ, Π½Π΅Π²Π΅Ρ€Π΅Π½. ΠŸΠΎΠΆΠ°Π»ΡƒΠΉΡΡ‚Π°, ΠΏΠΎΠΌΠΎΠ³ΠΈΡ‚Π΅ ΠΌΠ½Π΅ ΠΏΠΎΠ½ΡΡ‚ΡŒ, ΠΊΠ°ΠΊ unsigned long long хранится Π² Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠΌ Ρ„Π°ΠΉΠ»Π΅…


ΠŸΠΎΡ…ΠΎΠΆΠΈΠ΅ вопросы:

unsigned long long ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ с uint64_t?

ΠœΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ шаблона для Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° Ρ‚ΠΈΠΏΠ°, Ρ‚Π°ΠΊΠΎΠ³ΠΎ ΠΊΠ°ΠΊ class my_template_class<uint64_t M>: public my_template_class_base<uint64_t> { …. } class…

ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с unsigned long long

Π― экспСримСнтировал с ограничСниями unsigned long long Π² C++ ΠΈ столкнулся с нСбольшой ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΎΠΉ. Когда я ΡƒΠΌΠ½ΠΎΠΆΠ°ΡŽ 5 ΠΌΠΈΠ»Π»ΠΈΠΎΠ½ΠΎΠ² Π½Π° 5 ΠΌΠΈΠ»Π»ΠΈΠΎΠ½ΠΎΠ² Π²ΠΎΡ‚ Ρ‚Π°ΠΊ: unsigned long long test = 5000000*5000000;…

Как ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΈΠΏ unsigned long long?

Π― ΠΏΡ‹Ρ‚Π°ΡŽΡΡŒ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΈΠΏ unsigned long long int . Но компилятор Π²Ρ‹Π΄Π°Π΅Ρ‚ ΠΎΡˆΠΈΠ±ΠΊΡƒ error: integer constant is too large for long type . Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡ ΠΏΠΎΠΊΠ°Π·Π°Π½Π° Π½ΠΈΠΆΠ΅ : unsigned long long temp =…

C++ Ρ€Π°Π·Π½ΠΈΡ†Π° ΠΌΠ΅ΠΆΠ΄Ρƒ unsigned int ΠΈ unsigned long int

Π― занимаюсь Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΎΠΉ C++ Π½Π° Windows с компилятором Visual Studio, Π² частности Visual Studio 2015 Update 3. Для Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Ρ€Π°Π±ΠΎΡ‚, связанных с DSP, я ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽ unsigned int / unsigned long Ρ‚ΠΈΠΏ…

Π Π°Π·Π½ΠΈΡ†Π° ΠΌΠ΅ΠΆΠ΄Ρƒ unsigned long ΠΈ UINT64

Π’ Ρ‡Π΅ΠΌ Ρ€Π°Π·Π½ΠΈΡ†Π° ΠΌΠ΅ΠΆΠ΄Ρƒ unsigned long ΠΈ UINT64 ? Π― Π΄ΡƒΠΌΠ°ΡŽ, Ρ‡Ρ‚ΠΎ это ΠΎΠ΄Π½ΠΎ ΠΈ Ρ‚ΠΎ ΠΆΠ΅, Π½ΠΎ я Π½Π΅ ΡƒΠ²Π΅Ρ€Π΅Π½. ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ UINT64 являСтся : typedef unsigned __int64 UINT64 (с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ StdAfx.h)

Π’ Ρ‡Π΅ΠΌ Ρ€Π°Π·Π½ΠΈΡ†Π° ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ unsigned int 2 Ρ€Π°Π·Π° ΠΈ unsigned long 1 Ρ€Π°Π· Π² систСмах 64 bit?

Π’ Ρ‡Π΅ΠΌ Ρ€Π°Π·Π½ΠΈΡ†Π° ΠΌΠ΅ΠΆΠ΄Ρƒ *(unsigned*)d = *(unsigned*)s; d+=4; s+=4; *(unsigned*)d = *(unsigned*)s; d+=4; s+=4; ΠΈ *(unsigned long*)d = *(unsigned long*)s; d+=8; s+=8; Π½Π° 64-Π±ΠΈΡ‚Π½Ρ‹Ρ… систСмах?

unsigned long long to binary

Π― ΠΏΡ‹Ρ‚Π°ΡŽΡΡŒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ установлСнныС Π±ΠΈΡ‚Ρ‹ unsigned long long Π² c++, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹ΠΉ Π½ΠΈΠΆΠ΅ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ провСряСт, установлСн Π»ΠΈ Π±ΠΈΡ‚ ΠΈΠ»ΠΈ Π½Π΅Ρ‚. Но моя ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΎΡ‚Π²Π΅Ρ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ я…

ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΠ· unsigned long long Π² unsigned int

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

Π’ Ρ‡Π΅ΠΌ Ρ€Π°Π·Π½ΠΈΡ†Π° ΠΌΠ΅ΠΆΠ΄Ρƒ long unsigned int ΠΈ unsigned long int

ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ‚ΠΎΡ€ Π±Π΅Ρ€Π΅Ρ‚ эти Π΄Π²Π° ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹Ρ…. long unsigned int a; unsigned long int a;

unsigned long long int output Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚

ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ΄ Ρ‚Π΅Ρ€ΠΏΠΈΡ‚ Π½Π΅ΡƒΠ΄Π°Ρ‡Ρƒ, ΠΊΠΎΠ³Π΄Π° Π΄Π°Π΅Ρ‚ большС чисСл, Ρ‡Π΅ΠΌ 111111111111111111 (19 Ρ€Π°Π· ΠΏΠΎ 1). хотя unsigned long long int Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Π΄ΠΎ 18446744073709551615 (19 чисСл), Π½ΠΎ 111111111111111111…

unsigned-long-long-int β€” Русский β€” it-swarm.com.ru

unsigned-long-long-int β€” Русский β€” it-swarm.com.ru

it-swarm.com.ru

Java эквивалСнт unsigned long long?

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ long int Π² PHP

ВычислСниС Π±ΠΈΡ‚ΠΎΠ², Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Ρ… для хранСния дСсятичного числа

Как Π½Π°ΠΏΠ΅Ρ‡Π°Ρ‚Π°Ρ‚ΡŒ «unsigned long» Π² C?

Π”Π»ΠΈΠ½Π½Ρ‹ΠΉ Π±Π΅Π· подписи Π½Π° Java

c ++ uint, unsigned int, int

ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π±Π΅Π· Π·Π½Π°ΠΊΠ° ΠΏΡ€ΠΎΡ‚ΠΈΠ² Ρ†Π΅Π»Ρ‹Ρ… чисСл со Π·Π½Π°ΠΊΠΎΠΌ

ΠŸΠΎΡ‡Π΅ΠΌΡƒ int, Π° Π½Π΅ unsigned int ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для Ρ†ΠΈΠΊΠ»ΠΎΠ² C ΠΈ C++ для Ρ†ΠΈΠΊΠ»ΠΎΠ²?

C ΠΎΠ±Ρ€Π°Ρ‚Π½Ρ‹Π΅ Π±ΠΈΡ‚Ρ‹ Π² Ρ†Π΅Π»ΠΎΠΌ числС Π±Π΅Π· Π·Π½Π°ΠΊΠ°

C/C++ использованиС int или unsigned int

ΠΊΠ°ΠΊΠΎΠΉ смысл ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ unsigned int Π² C?

Какой Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… «Π΄Π»ΠΈΠ½Π½Ρ‹ΠΉ Π΄Π»ΠΈΠ½Π½Ρ‹ΠΉ»?

ΠœΠΎΠ³Ρƒ Π»ΠΈ я ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΄ΠΎΠ»Π³ΠΎ Π² INT?

Как ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π»ΠΈΠ½Π½Ρ‹ΠΉ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ Π² прилоТСниях Rails?

Как ΠΌΠ½Π΅ ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠ· int Π² Long Π² Java?

КакоС максимальноС число с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ Π² ​​Python?

Какая Ρ€Π°Π·Π½ΠΈΡ†Π° ΠΌΠ΅ΠΆΠ΄Ρƒ Π΄Π»ΠΈΠ½Π½Ρ‹ΠΌ Π΄Π»ΠΈΠ½Π½Ρ‹ΠΌ ΠΈ Π΄Π»ΠΈΠ½Π½Ρ‹ΠΌ

Π›ΠΈΡ‚Π΅Ρ€Π°Π» xyz Ρ‚ΠΈΠΏΠ° int находится Π²Π½Π΅ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π°

Π£ΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄Π²ΡƒΡ… Ρ†Π΅Π»Ρ‹Ρ… чисСл Π² C++

«OverflowError: Python int слишком Π²Π΅Π»ΠΈΠΊ для прСобразования Π² C long» Π² Windows, Π½ΠΎ Π½Π΅ Π² Mac

ΠŸΠΎΠ΄ΠΏΠΈΡΠ°Π½Π½Ρ‹Π΅ ΠΈ нСподписанныС Ρ†Π΅Π»Ρ‹Π΅ числа

Как ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Ρ‚ΠΈΠΏ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Python?

Π˜Ρ‚Π΅Ρ€Π°Ρ†ΠΈΡ ΠΏΠΎ std :: vector: unsigned vs знаковая пСрСмСнная со Π·Π½Π°ΠΊΠΎΠΌ

ΠŸΠΎΡ‡Π΅ΠΌΡƒ Java Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Π±Π΅Π·Π·Π½Π°ΠΊΠΎΠ²Ρ‹Π΅ Ρ†Π΅Π»Ρ‹Π΅?

ΠŸΠΎΡ‡Π΅ΠΌΡƒ Ρƒ C Π½Π΅Ρ‚ Π±Π΅Π·Π·Π½Π°ΠΊΠΎΠ²Ρ‹Ρ… ΠΏΠΎΠΏΠ»Π°Π²ΠΊΠΎΠ²?

Π’ Ρ‡Π΅ΠΌ Ρ€Π°Π·Π½ΠΈΡ†Π° ΠΌΠ΅ΠΆΠ΄Ρƒ Π·Π½Π°ΠΊΠΎΠ²Ρ‹ΠΌΠΈ ΠΈ Π±Π΅Π·Π·Π½Π°ΠΊΠΎΠ²Ρ‹ΠΌΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ?

Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ нСподписанный Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ…?

Как ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ цСлочислСнноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ со Π·Π½Π°ΠΊΠΎΠΌ long Π² python?

нСподписанный ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΠΉ Π² Java

ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΡ сравнСния для Ρ†Π΅Π»Ρ‹Ρ… чисСл Π±Π΅Π· Π·Π½Π°ΠΊΠ° ΠΈ со Π·Π½Π°ΠΊΠΎΠΌ

ΠšΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово Π±Π΅Π· Π·Π½Π°ΠΊΠ° Π² C ++

Π”Π²ΠΎΠΉΠ½ΠΎΠΉ Π±Π΅Π· Π·Π½Π°ΠΊΠ° Π² C ++?

Π§Ρ‚ΠΎ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ‚, Ссли я Π½Π°Π·Π½Π°Ρ‡Ρƒ ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π±Π΅Π· Π·Π½Π°ΠΊΠ°?

Как я ΠΌΠΎΠ³Ρƒ ΠΈΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π±ΠΈΡ‚Ρ‹ Π±Π΅Π·Π·Π½Π°ΠΊΠΎΠ²ΠΎΠ³ΠΎ Π±Π°ΠΉΡ‚Π° Π² Java?

ΠŸΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ — сравнСниС ΠΌΠ΅ΠΆΠ΄Ρƒ цСлочислСнными выраТСниями со Π·Π½Π°ΠΊΠΎΠΌ ΠΈ Π±Π΅Π· Π·Π½Π°ΠΊΠ°

Π’ Ρ‡Π΅ΠΌ Ρ€Π°Π·Π½ΠΈΡ†Π° ΠΌΠ΅ΠΆΠ΄Ρƒ Β«intΒ» ΠΈ Β«uintΒ» / Β«longΒ» ΠΈ Β«ulongΒ»?

Π’ Ρ‡Π΅ΠΌ Ρ€Π°Π·Π½ΠΈΡ†Π° ΠΌΠ΅ΠΆΠ΄Ρƒ unsigned int ΠΈ sign int Π² C?

МоТСм Π»ΠΈ ΠΌΡ‹ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ нСподписанный Π±Π°ΠΉΡ‚ Π² Java

ΠŸΠΎΡ‡Π΅ΠΌΡƒ SQL Server Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… Π±Π΅Π· Π·Π½Π°ΠΊΠ°?

Ρ€Π°Π·Π½ΠΈΡ†Π° ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒΡŽ адрСса памяти с использованиСм% u ΠΈ% d Π² C?

Π’ Ρ‡Π΅ΠΌ прСимущСство zerofill Π² MySQL?

ΠŸΠΎΠ΄ΠΏΠΈΡΠ°Π½Π½Ρ‹Π΅ / нСподписанныС сравнСния

Π’ Ρ‡Π΅ΠΌ Ρ€Π°Π·Π½ΠΈΡ†Π° ΠΌΠ΅ΠΆΠ΄Ρƒ подписанным ΠΈ нСподписанным int

ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ char * Π² unsigned char *

ΠžΠΏΡ€Π΅Π΄Π΅Π»ΡΠ΅Ρ‚ΡΡ Π»ΠΈ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ цСлочислСнного вычитания Π±Π΅Π· Π·Π½Π°ΠΊΠ°?

ΠžΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ числа хранятся Π² памяти ΠΊΠ°ΠΊ 2-Ρ… дополнСния. Как процСссор ΡƒΠ·Π½Π°Π΅Ρ‚, ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΎΠ½ΠΈ ΠΈΠ»ΠΈ ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅?

Π›ΡƒΡ‡ΡˆΠΈΠΉ способ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ Ρ†Π΅Π»ΠΎΠ΅ число со Π·Π½Π°ΠΊΠΎΠΌ Π² Π΄Π»ΠΈΠ½Π½ΡƒΡŽ Π±Π΅Π· Π·Π½Π°ΠΊΠ°?

ОбъявлСниС нСподписанного Ρ†Π΅Π»ΠΎΠ³ΠΎ Π² Java

Π¦Π΅Π»Ρ‹Π΅ числа со Π·Π½Π°ΠΊΠΎΠΌ ΠΈ Π±Π΅Π· Π·Π½Π°ΠΊΠ° для Π΄Π»ΠΈΠ½Ρ‹ / количСства

ΠŸΠΎΡ‡Π΅ΠΌΡƒ size_t Π±Π΅Π· Π·Π½Π°ΠΊΠ°?

Β«strlen (s1) — strlen (s2)Β» Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ мСньшС нуля

НСвСрноС ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΠ· нСподписанного символа * Π² символ *

слСдуСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ size_t ΠΈΠ»ΠΈ ssize_t

Когда uint8_t char Π±Π΅Π·Π·Π½Π°ΠΊΠΎΠ²Ρ‹ΠΉ символ?

НСявноС ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ C ++ (подписано + нСподписано)

Π Π°Π·Π½ΠΈΡ†Π° ΠΌΠ΅ΠΆΠ΄Ρƒ size_t ΠΈ unsigned int?

Как ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ подписанноС Π² Ρ†Π΅Π»ΠΎΠ΅ число Π±Π΅Π· Π·Π½Π°ΠΊΠ° Π² Python

ΠŸΠΎΡ‡Π΅ΠΌΡƒ Ρ†Π΅Π»ΠΎΠ΅ число Π±Π΅Π· Π·Π½Π°ΠΊΠ° нСдоступно Π² PostgreSQL?

VHDL присваиваСт Π»ΠΈΡ‚Π΅Ρ€Π°Π»Ρ‹

Как ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ†Π΅Π»ΠΎΠ΅ число Π±Π΅Π· Π·Π½Π°ΠΊΠ° Π² Java 8 ΠΈ Java 9?

ΠŸΠΎΡ‡Π΅ΠΌΡƒ Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΏΠΎ-Π΄Ρ€ΡƒΠ³ΠΎΠΌΡƒ Ρ‡Π΅Ρ€Π΅Π· printf?

Когда я Π΄ΠΎΠ»ΠΆΠ΅Π½ просто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ «int» ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с Ρ‚ΠΈΠΏΠ°ΠΌΠΈ, спСцифичными для Π·Π½Π°ΠΊΠ° ΠΈΠ»ΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€Π°?

ΠŸΠΎΡ‡Π΅ΠΌΡƒ Ρ†Π΅Π»Ρ‹Π΅ числа Π±Π΅Π· Π·Π½Π°ΠΊΠ° ΠΏΠΎΠ΄Π²Π΅Ρ€ΠΆΠ΅Π½Ρ‹ ошибкам?

Как я ΠΌΠΎΠ³Ρƒ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ std :: vector ΠΊΠ°ΠΊ int?

Π‘Π΅Π·Π·Π½Π°ΠΊΠΎΠ²Ρ‹Π΅ значСния Π² Π‘

Как ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ случайноС 64-разрядноС Ρ†Π΅Π»ΠΎΠ΅ число Π±Π΅Π· Π·Π½Π°ΠΊΠ° Π² C

C ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ массив Π² ΡˆΠ΅ΡΡ‚Π½Π°Π΄Ρ†Π°Ρ‚Π΅Ρ€ΠΈΡ‡Π½Ρ‹Ρ… значСниях

Π’ Π‘ΠΈ, ΠΏΠΎΡ‡Π΅ΠΌΡƒ «ΠΏΠΎΠ΄ΠΏΠΈΡΠ°Π½Π½Ρ‹ΠΉ int» быстрСС, Ρ‡Π΅ΠΌ «unsigned int»?

ΠŸΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ Π»ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ std :: is_unsigned <bool> :: value?

ΠŸΠΎΡ‡Π΅ΠΌΡƒ (18446744073709551615 == -1) Π²Π΅Ρ€Π½ΠΎ?

Π’ Ρ‡Π΅ΠΌ Ρ€Π°Π·Π½ΠΈΡ†Π° ΠΌΠ΅ΠΆΠ΄Ρƒ подписанным ΠΈ нСподписанным Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹ΠΌ

ΠŸΠΎΡ‡Π΅ΠΌΡƒ Kotlin Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Ρ†Π΅Π»Ρ‹Π΅ числа Π±Π΅Π· Π·Π½Π°ΠΊΠ°?

ΠŸΠΎΡ‡Π΅ΠΌΡƒ Π·Π½Π°ΠΊ отличаСтся послС вычитания нСподписанного ΠΈ подписанного?

ГСнСрация случайных Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π² C #

БпСцификация Π½ΠΎΠΌΠ΅Ρ€Π° Java (длинная)

WordPrap ΠΎΡ‡Π΅Π½ΡŒ длинная строка

Java: ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ°, Ρ€Π°Π²Π΅Π½ Π»ΠΈ Π±ΠΈΡ‚ 0 ΠΈΠ»ΠΈ 1 Π² Π΄Π»ΠΈΠ½Π½ΠΎΠΉ

Как Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ строку Π² массив string []? Π’Π°ΠΌ Π½Π΅Ρ‚. Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ

Π΄ΠΎΠ»Π³ΠΎ Π΄ΠΎΠ»Π³ΠΎ Π² C / C ++

Как я ΠΌΠΎΠ³Ρƒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ, ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ Π»ΠΈ ΡƒΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄Π²ΡƒΡ… чисСл ΠΊ Java ΠΊ ΠΏΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡŽ?

Как ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ / ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ΡŒ Π΄Π»ΠΈΠ½Π½Ρ‹Π΅ Π² String?

НСвозмоТно ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠ· Ρ‚ΠΈΠΏΠ° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π² Π΄Π»ΠΈΠ½Π½Ρ‹ΠΉ

Java: случайноС Π΄Π»ΠΈΠ½Π½ΠΎΠ΅ число Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ <= x <n

ΠŸΠΎΡ‡Π΅ΠΌΡƒ ваш Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° switch Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π΄Π»ΠΈΠ½Π½Ρ‹ΠΌ, Java?

Π˜Π½Π΄ΠΈΠΊΠ°Ρ‚ΠΎΡ€ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Chrome ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅Ρ‚ Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ Π²ΠΎ врСмя XMLHttpRequest

Π΄Π»ΠΈΠ½Π½Ρ‹ΠΉ Π΄Π²ΠΎΠΉΠ½ΠΎΠΉ ΠΏΡ€ΠΎΡ‚ΠΈΠ² Π΄Π²ΠΎΠΉΠ½ΠΎΠ³ΠΎ

Π”Π»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ Π½Π°ΠΆΠ°Ρ‚ΠΈΠ΅ Π½Π° UITableView

ΠΏΡ€ΠΈΠ½Ρ‚Ρ„ ΠΈ Π΄Π»ΠΈΠ½Π½Ρ‹ΠΉ Π΄Π²ΠΎΠΉΠ½ΠΎΠΉ

ΠšΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ long Π² Π±Π°ΠΉΡ‚ΠΎΠ²Ρ‹ΠΉ массив ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ массив

ΠžΠ±Π½Π°Ρ€ΡƒΠΆΠΈΡ‚ΡŒ сСнсорноС Π½Π°ΠΆΠ°Ρ‚ΠΈΠ΅ ΠΏΡ€ΠΎΡ‚ΠΈΠ² Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ наТатия ΠΏΡ€ΠΎΡ‚ΠΈΠ² двиТСния?

ГарантируСтся Π»ΠΈ `long` ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ 32 Π±ΠΈΡ‚Π°?

Как ΠΌΠ½Π΅ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ Long Π² byte [] ΠΈ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ Π² java

ΠšΠΎΡ€ΠΎΡ‚ΠΊΠΈΠΉ опрос ΠΈ Π”Π»ΠΈΠ½Π½Ρ‹ΠΉ опрос для Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ?

Как я ΠΌΠΎΠ³Ρƒ ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ NSString Π² Π΄Π»ΠΈΠ½Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅?

Как ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ строку Π² Π΄Π»ΠΈΠ½Π½Ρ‹ΠΉ Π² JavaScript?

UIButton Long Press Event

Как я ΠΌΠΎΠ³Ρƒ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠ· строки Π² Π΄Π»ΠΈΠ½Π½Ρ‹Π΅ Π² C #

ΠšΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Double Π² Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠ΅ прСдставлСниС?

Как ΠΏΠ΅Ρ‡Π°Ρ‚Π°Ρ‚ΡŒ Π΄ΠΎΠ»Π³ΠΎ?

Максимальная ΠΊΠ²ΠΎΡ‚Π° Π΄Π»ΠΈΠ½Ρ‹ строки содСрТимого (8192) Π±Ρ‹Π»Π° ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ΅Π½Π° ΠΏΡ€ΠΈ Ρ‡Ρ‚Π΅Π½ΠΈΠΈ Π΄Π°Π½Π½Ρ‹Ρ… XML

Content dated before 2011-04-08 (UTC) is licensed under CC BY-SA 2.5. Content dated from 2011-04-08 up to but not including 2018-05-02 (UTC) is licensed under CC BY-SA 3.0. Content dated on or after 2018-05-02 (UTC) is licensed under CC BY-SA 4.0. | Privacy

Unsigned int vs. size_t — ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅

Π― Π·Π°ΠΌΠ΅Ρ‡Π°ΡŽ, Ρ‡Ρ‚ΠΎ соврСмСнный ΠΊΠΎΠ΄ Π½Π° C ΠΈ Π‘++ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ size_t вмСсто int/unsigned int ΠΏΠΎΡ‡Ρ‚ΠΈ Π²Π΅Π·Π΄Π΅ — ΠΎΡ‚ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² для строковых Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ C Π΄ΠΎ STL. МнС интСрСсно ΡƒΠ·Π½Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Ρƒ этого ΠΈ прСимущСства, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ½ приносит.

ΠžΠ’Π’Π•Π’Π«

ΠžΡ‚Π²Π΅Ρ‚ 1

Π’ΠΈΠΏ size_t — это цСлочислСнный Ρ‚ΠΈΠΏ Π±Π΅Π· Π·Π½Π°ΠΊΠ°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ являСтся Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° sizeof (ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° offsetof), поэтому ΠΎΠ½ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ достаточно большим, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ самого большого ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° вашСй систСмы ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, статичСский массив 8Gb).

Π’ΠΈΠΏ size_t ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ большС, Ρ€Π°Π²Π΅Π½ ΠΈΠ»ΠΈ мСньшС, Ρ‡Π΅ΠΌ unsigned int, ΠΈ ваш компилятор ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ прСдполоТСния ΠΎΠ± этом для ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ.

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΠΉΡ‚ΠΈ Π±ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΡ‡Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ Π² стандартС C99, Ρ€Π°Π·Π΄Π΅Π» 7.17, Ρ‡Π΅Ρ€Π½ΠΎΠ²ΠΈΠΊ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ доступСн Π² Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π΅ Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ pdf, ΠΈΠ»ΠΈ Π² стандартС C11, Ρ€Π°Π·Π΄Π΅Π» 7.19, Ρ‚Π°ΠΊΠΆΠ΅ доступСн ΠΊΠ°ΠΊ pdf-ΠΏΡ€ΠΎΠ΅ΠΊΡ‚.

ΠžΡ‚Π²Π΅Ρ‚ 2

ΠšΠ»Π°ΡΡΠΈΡ‡Π΅ΡΠΊΠΈΠΉ C (Ρ€Π°Π½Π½ΠΈΠΉ Π΄ΠΈΠ°Π»Π΅ΠΊΡ‚ C, описанный Π‘Ρ€Π°ΠΉΠ°Π½ΠΎΠΌ ΠšΠ΅Ρ€Π½ΠΈΠ³Π°Π½ΠΎΠΌ ΠΈ ДСннисом Π ΠΈΡ‚Ρ‡ΠΈ Π² «Π―Π·Ρ‹ΠΊΠ΅ программирования C», Prentice-Hall, 1978) Π½Π΅ Π΄Π°Π» size_t. ΠšΠΎΠΌΠΈΡ‚Π΅Ρ‚ ΠΏΠΎ стандартам C прСдставил size_t для устранСния ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ пСрСносимости

ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ объяснСно Π½Π° Embedded.com (с ΠΎΡ‡Π΅Π½ΡŒ Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠΌ)

ΠžΡ‚Π²Π΅Ρ‚ 3

ΠšΠΎΡ€ΠΎΡ‡Π΅ говоря, size_t Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Π±Ρ‹Π²Π°Π΅Ρ‚ ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ, ΠΈ ΠΎΠ½ максимизируСт ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Π΅Π³ΠΎ typedef Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ собой цСлочислСнный Ρ‚ΠΈΠΏ Π±Π΅Π· Π·Π½Π°ΠΊΠ°, достаточно большой — Π½ΠΎ Π½Π΅ слишком большой — Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ максимально Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π½Π° Ρ†Π΅Π»Π΅Π²ΠΎΠΉ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅.

Π Π°Π·ΠΌΠ΅Ρ€Ρ‹ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ, ΠΈ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ size_t являСтся нСподписанным Ρ‚ΠΈΠΏΠΎΠΌ. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ size_t являСтся Π±Π΅Π·Π·Π½Π°ΠΊΠΎΠ²Ρ‹ΠΌ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ числа, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Π² Π΄Π²Π° Ρ€Π°Π·Π° большС, Ρ‡Π΅ΠΌ Ρƒ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ Ρ‚ΠΈΠΏΠ° со Π·Π½Π°ΠΊΠΎΠΌ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π·Π½Π°ΠΊΠΎΠ²Ρ‹ΠΉ Π±ΠΈΡ‚ для прСдставлСния Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Ρ‹, ΠΊΠ°ΠΊ ΠΈ всС Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Π±ΠΈΡ‚Ρ‹ Π² Ρ†Π΅Π»ΠΎΠΌ числС Π±Π΅Π· Π·Π½Π°ΠΊΠ°. Когда ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ Π±ΠΈΡ‚, ΠΌΡ‹ ΡƒΠΌΠ½ΠΎΠΆΠ°Π΅ΠΌ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ чисСл, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ, ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Π² Π΄Π²Π° Ρ€Π°Π·Π°.

Π˜Ρ‚Π°ΠΊ, Π²Ρ‹ ΡΠΏΡ€Π°ΡˆΠΈΠ²Π°Π΅Ρ‚Π΅, ΠΏΠΎΡ‡Π΅ΠΌΡƒ Π±Ρ‹ просто Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ unsigned int? Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΎΠ½ Π½Π΅ смоТСт Π²ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ достаточно большиС числа. Π’ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ, Π³Π΄Π΅ unsigned int составляСт 32 Π±ΠΈΡ‚Π°, наибольшСС число, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ, это 4294967295. НСкоторыС процСссоры, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ IP16L32, ΠΌΠΎΠ³ΡƒΡ‚ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ Π±ΠΎΠ»Π΅Π΅ 4294967295 Π±Π°ΠΉΡ‚ΠΎΠ².

Π˜Ρ‚Π°ΠΊ, Π²Ρ‹ ΡΠΏΡ€Π°ΡˆΠΈΠ²Π°Π΅Ρ‚Π΅, ΠΏΠΎΡ‡Π΅ΠΌΡƒ Π±Ρ‹ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ unsigned long int? Π­Ρ‚ΠΎ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ сниТСния ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π½Π° Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ…. Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚ C Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚, Ρ‡Ρ‚ΠΎΠ±Ρ‹ long Π·Π°Π½ΠΈΠΌΠ°Π» Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ 32 Π±ΠΈΡ‚. ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° IP16L32 Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅Ρ‚ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ 32-разрядный ΠΊΠΎΠ΄ Π² Π²ΠΈΠ΄Π΅ ΠΏΠ°Ρ€Ρ‹ 16-разрядных слов. ΠŸΠΎΡ‡Ρ‚ΠΈ всС 32-Π±ΠΈΡ‚Π½Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ Π½Π° этих ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ… Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ Π΄Π²ΡƒΡ… инструкций, Ссли Π½Π΅ большС, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ с 32-Π±ΠΈΡ‚Π½Ρ‹ΠΌΠΈ Π² Π΄Π²ΡƒΡ… 16-Π±ΠΈΡ‚Π½Ρ‹Ρ… Π±Π»ΠΎΠΊΠ°Ρ…. НапримСр, для пСрСмСщСния 32-Π±ΠΈΡ‚Π½ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ‹ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ΡΡ Π΄Π²Π΅ ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹Π΅ инструкции — ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΉ для пСрСмСщСния ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ 16-Π±ΠΈΡ‚Π½ΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ°.

ИспользованиС size_t позволяСт ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ сниТСния ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ. Богласно этой фантастичСской ΡΡ‚Π°Ρ‚ΡŒΠ΅, «Type size_t — это typedef, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ являСтся псСвдонимом для Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Ρ†Π΅Π»ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° Π±Π΅Π· Π·Π½Π°ΠΊΠ°, ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ unsigned int ΠΈΠ»ΠΈ unsigned long, Π½ΠΎ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π΄Π°ΠΆΠ΅ unsigned long long. КаТдая рСализация стандарта C ΠΈΠΌΠ΅Π΅Ρ‚ Π²ΠΈΠ΄ прСдполагаСтся, Ρ‡Ρ‚ΠΎ Ρ†Π΅Π»ΠΎΠ΅ число Π±Π΅Π· Π·Π½Π°ΠΊΠ° Π±ΡƒΠ΄Π΅Ρ‚ достаточно большим, Π½ΠΎ Π½Π΅ большС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ максимально Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π½Π° Ρ†Π΅Π»Π΅Π²ΠΎΠΉ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅ «.

ΠžΡ‚Π²Π΅Ρ‚ 4

Π’ΠΈΠΏ size_t — это Ρ‚ΠΈΠΏ, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΡ‹ΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ sizeof. Π­Ρ‚ΠΎ Ρ†Π΅Π»ΠΎΠ΅ число Π±Π΅Π· Π·Π½Π°ΠΊΠ°, способноС Π²Ρ‹Ρ€Π°ΠΆΠ°Ρ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ Π² Π±Π°ΠΉΡ‚Π°Ρ… любого Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° памяти, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΠΎΠ³ΠΎ Π½Π° Π³Π»Π°Π²Π½ΠΎΠΉ машинС. Π­Ρ‚ΠΎ (ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ) связано с ptrdiff_t Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ptrdiff_t являСтся Π·Π½Π°ΠΊΠΎΠ²Ρ‹ΠΌ цСлочислСнным Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ, Ρ‚Π°ΠΊΠΈΠΌ, Ρ‡Ρ‚ΠΎ sizeof (ptrdiff_t) ΠΈ sizeof (size_t) Ρ€Π°Π²Π½Ρ‹.

ΠŸΡ€ΠΈ написании ΠΊΠΎΠ΄Π° C Π²Ρ‹ всСгда Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ size_t, ΠΊΠΎΠ³Π΄Π° ΠΈΠΌΠ΅Π΅Ρ‚Π΅ Π΄Π΅Π»ΠΎ с Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π°ΠΌΠΈ памяти.

Π’ΠΈΠΏ int, с Π΄Ρ€ΡƒΠ³ΠΎΠΉ стороны, Π² основном опрСдСляСтся ΠΊΠ°ΠΊ Ρ€Π°Π·ΠΌΠ΅Ρ€ (подписанного) цСлочислСнного значСния, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ хост-машина ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ эффСктивного выполнСния цСлочислСнной Π°Ρ€ΠΈΡ„ΠΌΠ΅Ρ‚ΠΈΠΊΠΈ. НапримСр, Π½Π° ΠΌΠ½ΠΎΠ³ΠΈΡ… ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°Ρ… с Π±ΠΎΠ»Π΅Π΅ старыми ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°ΠΌΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ sizeof (size_t) Π±ΡƒΠ΄Π΅Ρ‚ 4 (Π±Π°ΠΉΡ‚Ρ‹), Π° sizeof (int) Π±ΡƒΠ΄Π΅Ρ‚ 2 (Π±Π°ΠΉΡ‚). 16-разрядная Π°Ρ€ΠΈΡ„ΠΌΠ΅Ρ‚ΠΈΠΊΠ° Π±Ρ‹Π»Π° быстрСС, Ρ‡Π΅ΠΌ 32-разрядная Π°Ρ€ΠΈΡ„ΠΌΠ΅Ρ‚ΠΈΠΊΠ°, хотя ЦП ΠΌΠΎΠ³ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ (логичСскоС) пространство памяти Π΄ΠΎ 4 Π“Π‘.

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ‚ΠΈΠΏ int Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚ΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ Π·Π°Π±ΠΎΡ‚ΠΈΡ‚Π΅ΡΡŒ ΠΎΠ± эффСктивности, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π΅Π³ΠΎ фактичСская Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ сильно зависит ΠΎΡ‚ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² компилятора ΠΈ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ ΠΌΠ°ΡˆΠΈΠ½Ρ‹. Π’ частности, стандарт C Π·Π°Π΄Π°Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΈΠ½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹: sizeof (char) <= sizeof (short) <= sizeof (int) <= sizeof (long), Π½Π΅ устанавливая Π½ΠΈΠΊΠ°ΠΊΠΈΡ… Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ Π½Π° фактичСскоС прСдставлСниС точности, доступной для программист для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ· этих ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ².

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅. Π­Ρ‚ΠΎ Π½Π΅ Ρ‚ΠΎ ΠΆΠ΅ самоС, Ρ‡Ρ‚ΠΎ ΠΈ Π² Java (ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ фактичСски опрСдСляСт Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ Π±ΠΈΡ‚ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ· Ρ‚ΠΈΠΏΠΎΠ² «char», «byte», «short», «int» ΠΈ «long» ).

ΠžΡ‚Π²Π΅Ρ‚ 5

Π’ΠΈΠΏ size_t Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ достаточно большим, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ любого Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°. Unsigned int Π½Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡƒΠ΄ΠΎΠ²Π»Π΅Ρ‚Π²ΠΎΡ€ΡΡ‚ΡŒ этому ΡƒΡΠ»ΠΎΠ²ΠΈΡŽ.

НапримСр, Π² 64-Π±ΠΈΡ‚Π½Ρ‹Ρ… систСмах int ΠΈ unsigned int ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ 32 Π±ΠΈΡ‚ Π² ΡˆΠΈΡ€ΠΈΠ½Ρƒ, Π½ΠΎ size_t Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ достаточно большим, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ числа большС 4G

ΠžΡ‚Π²Π΅Ρ‚ 6

Π­Ρ‚Π° Π²Ρ‹Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΈΠ· руководства ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ glibc 0,02 ΠΌΠΎΠΆΠ΅Ρ‚ Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΠΌΠ΅Ρ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΈ исслСдовании Ρ‚Π΅ΠΌΡ‹:

БущСствуСт ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½Π°Ρ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° с Ρ‚ΠΈΠΏΠΎΠΌ size_t ΠΈ вСрсиями GCC Π΄ΠΎ выпуска 2.4. ANSI C Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚, Ρ‡Ρ‚ΠΎΠ±Ρ‹ size_t всСгда Π±Ρ‹Π» нСподписанным. Для совмСстимости с Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠ² ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… систСм GCC опрСдСляСт size_t Π² stddef.h' to be whatever type the system's sys/types.h ‘опрСдСляСт Π΅Π³ΠΎ. Π‘ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ Unix-систСм, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ size_t Π² `sys/types.h ‘, ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ Π΅Π³ΠΎ ΠΊΠ°ΠΊ подписанный Ρ‚ΠΈΠΏ. НСкоторый ΠΊΠΎΠ΄ Π² Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ зависит ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊΠΎΠΉ size_t являСтся нСподписанным, ΠΈ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ, Ссли ΠΎΠ½ подписан.

Код Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ GNU C, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΠΆΠΈΠ΄Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ size_t Π±ΡƒΠ΄Π΅Ρ‚ нСподписанным, Π²Π΅Ρ€Π΅Π½. НСвСрноС ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ size_t ΠΊΠ°ΠΊ подписанного Ρ‚ΠΈΠΏΠ°. ΠœΡ‹ ΠΏΠ»Π°Π½ΠΈΡ€ΡƒΠ΅ΠΌ, Ρ‡Ρ‚ΠΎ Π² вСрсии 2.4 GCC всСгда Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ size_t ΠΊΠ°ΠΊ нСподписанный Ρ‚ΠΈΠΏ ΠΈ fixincludes' script will massage the system's sys/types.h ‘, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ ΠΏΡ€ΠΎΡ‚ΠΈΠ²ΠΎΡ€Π΅Ρ‡ΠΈΡ‚ΡŒ этому.

Π’Π΅ΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ ΠΌΡ‹ ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌ эту ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ, явно указывая GCC Π½Π° использованиС нСподписанного Ρ‚ΠΈΠΏΠ° для size_t ΠΏΡ€ΠΈ компиляции Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ GNU C. `configure ‘автоматичСски ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΡ‚, ΠΊΠ°ΠΊΠΎΠΉ Ρ‚ΠΈΠΏ GCC ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ для size_t, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΅Π³ΠΎ ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ, Ссли это Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ.

ΠžΡ‚Π²Π΅Ρ‚ 7

Если ΠΌΠΎΠΉ компилятор установлСн Π½Π° 32 Π±ΠΈΡ‚Π°, size_t — это Π½Π΅ Ρ‡Ρ‚ΠΎ ΠΈΠ½ΠΎΠ΅, ΠΊΠ°ΠΊ typedef для unsigned int. Если ΠΌΠΎΠΉ компилятор установлСн Π½Π° 64 Π±ΠΈΡ‚, size_t — это Π½Π΅ Ρ‡Ρ‚ΠΎ ΠΈΠ½ΠΎΠ΅, ΠΊΠ°ΠΊ typedef для unsigned long long.

ΠžΡ‚Π²Π΅Ρ‚ 8

size_t — Ρ€Π°Π·ΠΌΠ΅Ρ€ указатСля.

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Π² 32 Π±ΠΈΡ‚Π°Ρ… ΠΈΠ»ΠΈ ΠΎΠ±Ρ‰Π΅ΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ ILP32 (цСлочислСнный, Π΄Π»ΠΈΠ½Π½Ρ‹ΠΉ, ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ) size_t составляСт 32 Π±ΠΈΡ‚Π°.
ΠΈ Π² 64 Π±ΠΈΡ‚ ΠΈΠ»ΠΈ общая модСль LP64 (long, pointer) size_t ΠΈΠΌΠ΅Π΅Ρ‚ 64 Π±ΠΈΡ‚Π° (Ρ†Π΅Π»Ρ‹Π΅ числа ΠΏΠΎ-ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ 32 Π±ΠΈΡ‚Π°).

Π‘ΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ, Π½ΠΎ это Ρ‚Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ g++ (ΠΏΠΎ ΠΊΡ€Π°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅Ρ€Π΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ)

visual studio — Ρ€Π°Π·Π½ΠΈΡ†Π° Π² C ++ ΠΌΠ΅ΠΆΠ΄Ρƒ unsigned int ΠΈ unsigned long int

Π’ стандартС C ++ unsigned int Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ значСния ΠΎΡ‚ 0 Π΄ΠΎ 65535 . ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠΈ это соотвСтствуСт 16 Π±ΠΈΡ‚Π°ΠΌ. Π Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ (Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ компиляторы) ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ unsigned int с большим Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ΠΎΠΌ, Π½ΠΎ это Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ.

Для сравнСния, unsigned long int Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎ смоТСт ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ значСния Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ ΠΎΡ‚ 0 Π΄ΠΎ 4294967295 .ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠΈ это соотвСтствуСт 32 Π±ΠΈΡ‚Π°ΠΌ. ΠžΠΏΡΡ‚ΡŒ ΠΆΠ΅, рСализация ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ больший Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½.

Π”ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Ρ‹ ΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹ этих Ρ‚ΠΈΠΏΠΎΠ² ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ΡΡ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ. РСализация Π΄ΠΎΠ»ΠΆΠ½Π° ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌ трСбованиям ΠΈ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρƒ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΠ½Π° Π²Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚.

Π Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π½Π΅Ρ€Π΅Π΄ΠΊΠΎ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ unsigned int ΠΈ unsigned long int , ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ±Π° ΡΠ²Π»ΡΡŽΡ‚ΡΡ 32-Π±ΠΈΡ‚Π½Ρ‹ΠΌΠΈ. Или, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ΄ΠΈΠ½ ΠΈΠ»ΠΈ ΠΎΠ±Π° Π±Ρ‹Π»ΠΈ 64-Π±ΠΈΡ‚Π½Ρ‹ΠΌΠΈ. Как Π²Ρ‹ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΠ»ΠΈ, Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ ΠΏΠΎ Visual Studio 2015 ΡƒΠΊΠ°Π·Π°Π½ΠΎ, Ρ‡Ρ‚ΠΎ unsigned int ΠΈ unsigned long int ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ значСния ΠΎΡ‚ 0 Π΄ΠΎ 4294967295 .

Для Ρ‚Π°ΠΊΠΎΠ³ΠΎ компилятора, ΠΊΠ°ΠΊ g ++, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с Ρ†Π΅Π»Ρ‹ΠΌ рядом систСм, Π²Ρ‹Π±ΠΎΡ€ часто опрСдСляСтся Ρ†Π΅Π»Π΅Π²ΠΎΠΉ систСмой. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, сборка g ++ для 32-разрядной систСмы ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ Ρ€Π°Π·Π½Ρ‹Π΅ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Ρ‹ для unsigned long , Ρ‡Π΅ΠΌ сборка для 64-разрядной систСмы.

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚Π²Π΅Ρ‚ΠΈΡ‚ΡŒ Π½Π° ваши вопросы

Для Π±Π΅Π·Π·Π½Π°ΠΊΠΎΠ²Ρ‹Ρ… Π΄Π»ΠΈΠ½Π½Ρ‹Ρ… 64 Π±ΠΈΡ‚Π°, Π²Ρ‹Ρ…ΠΎΠ΄ΠΈΡ‚ Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Ρ‹ ΠΏΠΎΡ‚ΠΎΠ»ΠΊΠ° 4 294 967 295 ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ undefined ΠΈΠ»ΠΈ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅?

Он ΠΈΠΌΠ΅Π΅Ρ‚ Ρ‡Π΅Ρ‚ΠΊΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅, хотя ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π΅ Π΄Π°Ρ‚ΡŒ ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌΡ‹Ρ… Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ².Π‘Π΅Π·Π·Π½Π°ΠΊΠΎΠ²Ρ‹Π΅ Ρ†Π΅Π»Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ Π² C ++ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Π°Ρ€ΠΈΡ„ΠΌΠ΅Ρ‚ΠΈΠΊΡƒ ΠΏΠΎ ΠΌΠΎΠ΄ΡƒΠ»ΡŽ. ЦСлочислСнноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ (Ρ‚ΠΈΠΏΠ°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ больший Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½), выходящСС Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Ρ‹ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° ΠΎΡ‚ 0 Π΄ΠΎ 4294967295 , Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΎ Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ΠΎ Π½Π°Ρ…ΠΎΠ΄ΠΈΠ»ΠΎΡΡŒ Π² этом Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ (матСматичСски эквивалСнтно ΠΌΠ½ΠΎΠ³ΠΎΠΊΡ€Π°Ρ‚Π½ΠΎΠΌΡƒ слоТСнию ΠΈΠ»ΠΈ Π²Ρ‹Ρ‡ΠΈΡ‚Π°Π½ΠΈΡŽ 4294967296 [ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° послСдний Ρ†ΠΈΡ„Ρ€Π°]). Π”Ρ€ΡƒΠ³ΠΈΠΌΠΈ словами, ΠΎΠ½ Π±ΡƒΠ΄Π΅Ρ‚ Β«ΠΎΠ±ΠΎΡ€Π°Ρ‡ΠΈΠ²Π°Ρ‚ΡŒΡΡΒ».

Если Ρƒ мСня Π΅ΡΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰Π΅Π΅ Π² систСмС Windows, скомпилированноС Π² Visual Studio, basicall unsigned == unsigned long.ΠŸΡ€Π°Π²Π΄Π° ΠΈΠ»ΠΈ лоТь?

ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Ρ, Ρ‡Ρ‚ΠΎ Visual Studio 2015 это ΠΏΡ€Π°Π²Π΄Π°, ΠΊΠ°ΠΊ сказано Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π²Ρ‹ ΡΡΡ‹Π»Π°Π΅Ρ‚Π΅ΡΡŒ. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ, Π° ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈ Π½Π΅ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€Π°Π²Π΄ΠΎΠΉ для Π±ΡƒΠ΄ΡƒΡ‰ΠΈΡ… ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΎΠ² Microsoft — это Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ.

Если Ρƒ мСня Π΅ΡΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, скомпилированноС компилятором GNU, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠΌ Π² Linux / Windows, я Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ unsigned long == unsigned int ΠΈΠ»ΠΈ unsigned long == unsigned long long, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ пСрСполнСния Π΄Π°Π½Π½Ρ‹Ρ…. Π’Π΅Ρ€Π½ΠΎ ΠΈΠ»ΠΈ Π½Π΅Π²Π΅Ρ€Π½ΠΎ

На самом дСлС лоТь.

Π­Ρ‚ΠΎ Π²Π΅Ρ€Π½ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Ρ‚ΠΎΠΌ случаС, Ссли Π²Ρ‹ пСрСноситС ΠΊΠΎΠ΄, основанный Π½Π° истинности этих ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.

Π‘ΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ваш ΠΊΠΎΠ΄ Π½Π΅ полагался Π½Π° ΠΈΡΡ‚ΠΈΠ½Π½ΠΎΡΡ‚ΡŒ Ρ‚Π°ΠΊΠΈΡ… ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. НапримСр, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ бСзопасно ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ, ΠΊΠΎΠ³Π΄Π° опСрация, Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰Π°Ρ Π΄Π²Π° значСния Π±Π΅Π· Π·Π½Π°ΠΊΠ° пСрСполнСния ΠΈΠ»ΠΈ ΠΏΠΎΡ‚Π΅Ρ€ΠΈ значимости, ΠΈ Π² любом случаС ΠΏΡ€Π΅Π΄ΠΏΡ€ΠΈΠ½ΡΡ‚ΡŒ дСйствия для получСния Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΡ‹Ρ… Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ². Если всС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€Π΅Π½Ρ‹ Π½Π°Π΄Π»Π΅ΠΆΠ°Ρ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ зависимости ΠΎΡ‚ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Ρ… Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠ² Ρ‚ΠΈΠΏΠΎΠ².

Если Ρƒ мСня Π΅ΡΡ‚ΡŒ кроссплатформСнноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ скомпилировано всСми этими компиляторами Visual Studio / GNU / Clang / Intel, я Π΄ΠΎΠ»ΠΆΠ΅Π½ Ρ‡Π΅Ρ‚ΠΊΠΎ ΠΊΠ»Π°ΡΡΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ срСду с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΡƒΡ‡ΠΈ прСпроцСссоров, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ пСрСполнСния Π΄Π°Π½Π½Ρ‹Ρ….Π’Π΅Ρ€Π½ΠΎ ΠΈΠ»ΠΈ Π½Π΅Π²Π΅Ρ€Π½ΠΎ

НС совсСм Ρ‚Π°ΠΊ. ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠΈ часто Π±Ρ‹Π²Π°Π΅Ρ‚ Ρ‚Π°ΠΊ.

Если ваш ΠΊΠΎΠ΄ придСрТиваСтся области стандартного C ++, ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠ΅ этого ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ (ΠΊΠ°ΠΊ я ΡƒΠΆΠ΅ ΡƒΠΏΠΎΠΌΠΈΠ½Π°Π» Π²Ρ‹ΡˆΠ΅, с Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ зависимости ΠΎΡ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠ² Π±Π΅Π·Π·Π½Π°ΠΊΠΎΠ²Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ²).

Если ваш ΠΊΠΎΠ΄ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΈΠ»ΠΈ прСдоставляСт ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ для Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‚ стандарту C ++ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, API Windows, Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ posix, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ входят Π² стандарт C ++), Ρ‚ΠΎ это часто Π±ΡƒΠ΄Π΅Ρ‚ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ. Π”Π°ΠΆΠ΅ Π² Ρ‚Π°ΠΊΠΈΡ… случаях этого ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ.НапримСр, помСститС вСрсии Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΠ΅ API Windows, Π² источник, ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹ΠΉ ΠΎΡ‚ вСрсий, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΡ… posix. И настройтС процСсс сборки (Ρ„Π°ΠΉΠ» makefile ΠΈ Ρ‚. Π”.) — Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΡ€ΠΈ сборкС для Windows Π½Π΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠΉΡ‚Π΅ ΠΈ Π½Π΅ связывайтС вСрсии unix.

Π΄Π»ΠΈΠ½Π½ΠΎΠ΅ Π±Π΅Π·Π·Π½Π°ΠΊΠΎΠ²ΠΎΠ΅ ΠΈ Π±ΠΈΡ‚ΠΎΠ²ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅

Π‘ΠΎΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅ ΠΎΡ‚ KCfromNC

Π― ΠΈΡ… Ρ‡ΠΈΡ‚Π°Π». Π― Ρ…ΠΎΡ‚Π΅Π» ΡΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ вСсь ΠΈΡ… ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΊ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ — ΠΎΠ±Ρ€Π°Ρ‚Π½Ρ‹ΠΉ. Π›ΡƒΡ‡ΡˆΠ΅ всСго Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚Π΅ ΠΎΡ‚ Π»ΡƒΡ‡ΡˆΠΈΡ… Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ², Π° Π½Π΅ ΠΎΡ‚ добавлСния ΠΈΠ»ΠΈ вычитания здСсь ΠΈΠ»ΠΈ Ρ‚Π°ΠΌ.Как я ΡƒΠΆΠ΅ сказал, эта страница прСдставляСт собой Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΉ сборник ΠΌΠ΅Π»ΠΎΡ‡Π΅ΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ большС относятся ΠΊ сорСвнованиям ΠΏΠΎ Π·Π°ΠΏΡƒΡ‚Π°Π½Π½ΠΎΠΌΡƒ ΠΊΠΎΠ΄Ρƒ, Ρ‡Π΅ΠΌ ΠΊ Ρ‡Π΅ΠΌΡƒ-Π»ΠΈΠ±ΠΎ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΉ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°. Π­Ρ‚ΠΎ интСрСсныС ΡƒΠ»ΠΎΠ²ΠΊΠΈ — Ρ‚ΠΎΡ‡Π½ΠΎ Ρ‚Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, которая Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ сама сСбя, — это изящный Ρ‚Ρ€ΡŽΠΊ. Однако это Π½Π΅ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ я ΠΊΠΎΠ³Π΄Π°-Π»ΠΈΠ±ΠΎ Ρ…ΠΎΡ‚Π΅Π» Π±Ρ‹ ΠΈΠΌΠ΅Ρ‚ΡŒ рядом с производствСнным ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΌ обСспСчСниСм, Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΊΡ€Π°ΠΉΠ½ΠΈΡ… случаСв. ΠœΡ‹ΡˆΠ»Π΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ заставляСт людСй Π΄ΡƒΠΌΠ°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ это ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ, — это Ρ‚ΠΎ ΠΆΠ΅ ΠΌΡ‹ΡˆΠ»Π΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ заставляСт людСй ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ΄Π½ΠΎΠ±ΡƒΠΊΠ²Π΅Π½Π½Ρ‹Π΅ ΠΈΠΌΠ΅Π½Π° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ Π±ΡƒΠ΄ΡƒΡ‚ быстрСС — i.Π΅. совсСм Π½Π΅ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π½Π° самом Π΄Π΅Π»Π΅ прСдставляСт собой Π°Π½Π°Π»ΠΈΠ· ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ.

Π›ΡŽΠ±ΠΎΠΉ инструмСнт Π² Ρ‡ΡƒΠΆΠΈΡ… Ρ€ΡƒΠΊΠ°Ρ… Π³Ρ€ΠΎΠ·ΠΈΡ‚ нСприятностями. Насколько я ΠΌΠΎΠ³Ρƒ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡ€Π°Π²Π΄Ρ‹ Π² Π²Ρ‹ΡˆΠ΅ΠΈΠ·Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠΌ, я ΡΠΎΠ±ΠΈΡ€Π°ΡŽΡΡŒ ΡΡ‹Π³Ρ€Π°Ρ‚ΡŒ Π² этом Π°Π΄Π²ΠΎΠΊΠ°Ρ‚Π° дьявола …

Ясно, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π½Π΅ встраиваСмый программист. Π’Π°ΠΊΠΈΠ΅ Π²Π΅Ρ‰ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π½Π΅ΠΎΡ†Π΅Π½ΠΈΠΌΡ‹ ΠΏΡ€ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ устройств с ΠΎΡ‡Π΅Π½ΡŒ малСнькими ΠžΠ—Π£ ΠΈ скоростями процСссора, измСряСмыми Π² ΠΌΠ΅Π³Π°Π³Π΅Ρ€Ρ†Π°Ρ…. ΠŸΠΎΠ΄ΡƒΠΌΠ°ΠΉΡ‚Π΅ ΠΎ Ρ‚Π°ΠΊΠΈΡ… устройствах, ΠΊΠ°ΠΊ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ USB Π² RS232. ИспользованиС Β«ΡƒΠ»ΠΎΠ²ΠΎΠΊΒ», ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Π½Π° Π·Π°ΠΌΠ΅Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΌ сайтС Bit Twiddling Hacks, для расчСта ΠΏΠ°Ρ€ΠΈΡ‚Π΅Ρ‚Π° ΠΌΠΎΠΆΠ΅Ρ‚ ΡΡ‚Π°Ρ‚ΡŒ Ρ€Π°Π·Π½ΠΈΡ†Π΅ΠΉ ΠΌΠ΅ΠΆΠ΄Ρƒ ΡƒΡΠΏΠ΅ΡˆΠ½Ρ‹ΠΌ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΎΠΌ ΠΈ Ρ‡Π΅ΠΌ-Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π½Π΅Ρ€Π΅Π°Π»ΡŒΠ½ΠΎ.

Π­Ρ‚ΠΎ Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для встроСнных устройств. Π’Π°ΠΊΠΈΠ΅ Π²Π΅Ρ‰ΠΈ, ΠΊΠ°ΠΊ ΡˆΠ°Ρ…ΠΌΠ°Ρ‚Π½Ρ‹ΠΉ ИИ, ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· областСй, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅, ΠΊΠ°ΠΊ извСстно, Π½ΡƒΠΆΠ΄Π°ΡŽΡ‚ΡΡ Π² максимальной ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ, насколько это Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ Β«Π½Π°Π²Ρ‹ΠΊΠΎΠ² ИИ». Если Π±Ρ‹ Π½Π΅ Π±ΠΈΡ‚Π±ΠΎΡ€Π΄Ρ‹ ΠΈ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ, Ρƒ нас практичСски Π½Π΅ Π±Ρ‹Π»ΠΎ Π±Ρ‹ ΡˆΠ°Ρ…ΠΌΠ°Ρ‚Π½ΠΎΠ³ΠΎ ИИ.
РСшСниС судоку — Π΅Ρ‰Π΅ ΠΎΠ΄Π½Π° ΠΈΠ³Ρ€Π°, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Π΅ Β«Ρ…Π°ΠΊΠΈΒ» ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΎΠ³Ρ€ΠΎΠΌΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅.
А ΠΊΠ°ΠΊ насчСт написания Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ bigint. Π’Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π½ΠΈΡ… Π±Π΅Π· Ρ‚Π°ΠΊΠΎΠΉ Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²ΠΎΠΉ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ? Π£Π΄Π°Ρ‡ΠΈ Π²Π°ΠΌ Π² ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠΈ достойной ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ.Π‘ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ ΠΈ Ρ‚Π°ΠΊ достаточно ΠΌΠ΅Π΄Π»Π΅Π½Π½Ρ‹.
Π­Ρ‚ΠΈ — это Π²Π΅Ρ‰ΠΈ Ρ‚ΠΈΠΏΠ° , ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ производствСнном ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΌ обСспСчСнии. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΡΠΏΠΎΡ€ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ· Π»ΡƒΡ‡ΡˆΠΈΡ… ΠΈΠ³Ρ€ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Ρ‚Π°ΠΊΠΈΠ΅ Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²Ρ‹Π΅ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ. Они ΠΌΠΎΠ³ΡƒΡ‚ Π΄Π°ΠΆΠ΅ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡ… Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ часто Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ подходящСС мСсто для ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… Π²Π΅Ρ‰Π΅ΠΉ находится Π² ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ ΠΌΠ½ΠΎΠ³ΠΎΡ€Π°Π·ΠΎΠ²ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ bigint).

Π”Π°, Π΅ΡΡ‚ΡŒ ΠΈΠ΄ΠΈΠΎΡ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ своп XOR, Π° это просто бСссмыслСнный мусор. ВсСгда ΠΏΠΎΠ΄Ρ‡Π΅Ρ€ΠΊΠΈΠ²Π°ΠΉΡ‚Π΅ Ρ€Π°Π·Π½ΠΈΡ†Ρƒ ΠΌΠ΅ΠΆΠ΄Ρƒ Β«ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉΒ» ΠΈ ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎΠΉ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ.Π”Π°, это Π½Π΅ ваша обычная повсСднСвная оптимизация, Π½ΠΎ Π²Ρ‹ Π±Ρ‹Π»ΠΈ Π±Ρ‹ Π΄ΡƒΡ€Π°ΠΊΠΎΠΌ, Ссли Π±Ρ‹ Π½Π°ΠΌΠ΅Ρ€Π΅Π½Π½ΠΎ отбросили ΠΈΡ… Π² сторону ΠΈ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ использовали ΠΈΡ…, ΠΊΠΎΠ³Π΄Π° подходящСС врСмя Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΡ€ΠΈΠ΄Π΅Ρ‚.

ПониманиС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ· этих ΡΡƒΠΌΠ°ΡΡˆΠ΅Π΄ΡˆΠΈΡ… Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²Ρ‹Ρ… ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΉ, Π½Π° самом Π΄Π΅Π»Π΅ ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅Ρ‚ Π³Π»Π°Π·Π°, ΠΈ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ· Π½ΠΈΡ… пСрСходят ΠΊ высокоуровнСвым оптимизациям, Ссли Π·Π°Π΄ΡƒΠΌΠ°Ρ‚ΡŒΡΡ. Он ΡƒΡ‡ΠΈΡ‚ вас ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΠΈΠ·ΠΌΡƒ ΠΈ Ρ‚Π°Π±Π»ΠΈΡ†Π°ΠΌ поиска ΠΈ, Ρ‡Ρ‚ΠΎ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π²Π°ΠΆΠ½ΠΎ, заставляСт вас Π·Π°Π΄ΡƒΠΌΠ°Ρ‚ΡŒΡΡ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ· способов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ Π²Ρ‹ ΠΌΠΎΠ³Π»ΠΈ Π΄ΡƒΠΌΠ°Ρ‚ΡŒ ΠΎ Ρ‡Π΅ΠΌ-Ρ‚ΠΎ Ρ€Π°Π½Π΅Π΅, Π±Ρ‹Π»ΠΈ Π±ΠΎΠ»Π΅Π΅ слоТными, Ρ‡Π΅ΠΌ ΠΎΠ½ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ.Π― Π΄ΡƒΠΌΠ°ΡŽ, Ρ‡Ρ‚ΠΎ ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΠ΅ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΈΠ· Π½ΠΈΡ… — ΠΆΠΈΠ·Π½Π΅Π½Π½ΠΎ ваТная Ρ‡Π°ΡΡ‚ΡŒ ΠΊΠ°Ρ€ΡŒΠ΅Ρ€Ρ‹ программиста.

ЦСлочислСнныС константы

ЦСлочислСнныС константы

ЦСлочислСнныС константы ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ дСсятичными (основаниС 10), ΡˆΠ΅ΡΡ‚Π½Π°Π΄Ρ†Π°Ρ‚Π΅Ρ€ΠΈΡ‡Π½Ρ‹ΠΌΠΈ (основаниС 16), Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹ΠΌΠΈ (основаниС 2) ΠΈΠ»ΠΈ Π²ΠΎΡΡŒΠΌΠ΅Ρ€ΠΈΡ‡Π½Ρ‹ΠΌΠΈ (основаниС 8). Π’ отсутствиС ΠΊΠ°ΠΊΠΈΡ…-Π»ΠΈΠ±ΠΎ Π·Π°ΠΌΠ΅Ρ‰Π°ΡŽΡ‰ΠΈΡ… суффиксов Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… цСлочислСнной константы являСтся ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½Ρ‹ΠΌ ΠΎΡ‚ Π΅Π΅ значСния.

Π”Π»ΠΈΠ½Π½Ρ‹Π΅ ΠΈ Π±Π΅Π·Π·Π½Π°ΠΊΠΎΠ²Ρ‹Π΅ суффиксы

Буффикс L (ΠΈΠ»ΠΈ l ), присваиваСмый Π»ΡŽΠ±Ρ‹ΠΌ постоянным силам, эта константа Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ прСдставлСна ​​как Π΄Π»ΠΈΠ½Π½ΠΎΠΉ .Π’ΠΎΡ‡Π½ΠΎ Ρ‚Π°ΠΊ ΠΆΠ΅ суффикс U (ΠΈΠ»ΠΈ u ) заставляСт константу Π±Ρ‹Ρ‚ΡŒ Π±Π΅Π· Π·Π½Π°ΠΊΠ° .
Буффиксы L ΠΈ U ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ с ΠΎΠ΄Π½ΠΎΠΉ ΠΈ Ρ‚ΠΎΠΉ ΠΆΠ΅ константой Π² любом порядкС ΠΈ Π² любом случаС: ul , Lu , UL ΠΈ Ρ‚. Π”.

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ суффиксы ULL (ΠΈΠ»ΠΈ ull ) ΠΈ LL (ΠΈΠ»ΠΈ ll ), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π·Π°ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ константу ΠΈΠΌΠ΅Ρ‚ΡŒ Ρ‚ΠΈΠΏ unsigned long long ΠΈΠ»ΠΈ long long .

ΠŸΡ€ΠΈ отсутствии суффикса ( U , u , L , l , LL , ll , ULL ΠΈΠ»ΠΈ ull ),
константС присваиваСтся «наимСньший» ΠΈΠ· ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… Ρ‚ΠΈΠΏΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π²ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ Π΅Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅: short , unsigned short , int , unsigned int , long int , unsigned long int , long long ΠΈΠ»ΠΈ Π±Π΅Π·Π·Π½Π°ΠΊΠΎΠ²Ρ‹ΠΉ Π΄Π»ΠΈΠ½Π½Ρ‹ΠΉ Π΄Π»ΠΈΠ½Π½Ρ‹ΠΉ .

Π’ ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС:

  • Если константа ΠΈΠΌΠ΅Π΅Ρ‚ суффикс U , Π΅Π΅ Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ ΠΈΠ· ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ Π΅Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅: unsigned short , unsigned int , unsigned long int .
  • Если константа ΠΈΠΌΠ΅Π΅Ρ‚ суффикс L , Π΅Π΅ Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ ΠΈΠ· ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ Π΅Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅: long int , unsigned long int .
  • Если константа ΠΈΠΌΠ΅Π΅Ρ‚ суффиксы L ΠΈ U ( LU ΠΈΠ»ΠΈ UL ), Π΅Π΅ Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… Π±ΡƒΠ΄Π΅Ρ‚ unsigned long int .
  • Если константа ΠΈΠΌΠ΅Π΅Ρ‚ LL , Π΅Π΅ Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… Π±ΡƒΠ΄Π΅Ρ‚ long long .
  • Если константа ΠΈΠΌΠ΅Π΅Ρ‚ ULL , Π΅Π΅ Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… Π±ΡƒΠ΄Π΅Ρ‚ unsigned long long .

дСсятичный

Π”ΠΎΠΏΡƒΡΠΊΠ°ΡŽΡ‚ΡΡ дСсятичныС константы ΠΎΡ‚ -9223372036854775808 Π΄ΠΎ 18446744073709551615. ΠšΠΎΠ½ΡΡ‚Π°Π½Ρ‚Ρ‹, ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ°ΡŽΡ‰ΠΈΠ΅ эти Π³Ρ€Π°Π½ΠΈΡ†Ρ‹, ΠΏΡ€ΠΈΠ²Π΅Π΄ΡƒΡ‚ ΠΊ ошибкС Β«Π’Π½Π΅ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π°Β». ДСсятичныС константы Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹ΠΉ ноль. ЦСлочислСнная константа с Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹ΠΌ Π½ΡƒΠ»Π΅ΠΌ интСрпрСтируСтся ΠΊΠ°ΠΊ Π²ΠΎΡΡŒΠΌΠ΅Ρ€ΠΈΡ‡Π½Π°Ρ константа.Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ,

  int  i = 10;  / * дСсятичноС 10 * / 
  int  i = 010;  / * дСсятичноС 8 * / 
  int  я = 0;  / * дСсятичный 0 = Π²ΠΎΡΡŒΠΌΠ΅Ρ€ΠΈΡ‡Π½Ρ‹ΠΉ 0 * /  

Π’ отсутствиС ΠΊΠ°ΠΊΠΈΡ…-Π»ΠΈΠ±ΠΎ Π·Π°ΠΌΠ΅Ρ‰Π°ΡŽΡ‰ΠΈΡ… суффиксов Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… дСсятичной константы являСтся ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½Ρ‹ΠΌ ΠΎΡ‚ Π΅Π΅ значСния, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½ΠΈΠΆΠ΅:

Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, присвоСнноС константС ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅ΠΌΡ‹ΠΉ Ρ‚ΠΈΠΏ
<-9223372036854775808 Ошибка: Π²Π½Π΅ допустимого Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π°!
-9223372036854775808-2147483649 Π΄Π»ΠΈΠ½Π½Ρ‹ΠΉ Π΄Π»ΠΈΠ½Π½Ρ‹ΠΉ
-2147483648 — -32769 Π΄Π»ΠΈΠ½Π½Ρ‹ΠΉ
-32768 — -129 Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΉ
-128-127 ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΠΉ
128–255 Π±Π΅Π·Π·Π½Π°ΠΊΠΎΠ²Ρ‹ΠΉ ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΠΉ
256-32767 Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΉ
32768-65535 Ρ†Π΅Π»ΠΎΠ΅ число Π±Π΅Π· Π·Π½Π°ΠΊΠ°
65536-2147483647 Π΄Π»ΠΈΠ½Π½Ρ‹ΠΉ
2147483648-4294967295 Π±Π΅Π·Π·Π½Π°ΠΊΠΎΠ²ΠΎΠ΅ Π΄Π»ΠΈΠ½Π½ΠΎΠ΅
4294967296-18446744073709551615 Π±Π΅Π·Π·Π½Π°ΠΊΠΎΠ²Ρ‹ΠΉ Π΄Π»ΠΈΠ½Π½Ρ‹ΠΉ Π΄Π»ΠΈΠ½Π½Ρ‹ΠΉ
> 18446744073709551615 Ошибка: Π²Π½Π΅ допустимого Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π°!

ШСстнадцатСричный

ВсС константы, Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΠ΅ΡΡ с 0x (ΠΈΠ»ΠΈ 0X ), ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ ΡˆΠ΅ΡΡ‚Π½Π°Π΄Ρ†Π°Ρ‚Π΅Ρ€ΠΈΡ‡Π½Ρ‹ΠΌΠΈ.Π’ отсутствиС ΠΊΠ°ΠΊΠΈΡ…-Π»ΠΈΠ±ΠΎ Π·Π°ΠΌΠ΅Ρ‰Π°ΡŽΡ‰ΠΈΡ… суффиксов Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… ΡˆΠ΅ΡΡ‚Π½Π°Π΄Ρ†Π°Ρ‚Π΅Ρ€ΠΈΡ‡Π½ΠΎΠΉ константы выводится ΠΈΠ· Π΅Π΅ значСния Π² соотвСтствии с ΠΏΡ€Π°Π²ΠΈΠ»Π°ΠΌΠΈ, прСдставлСнными Π²Ρ‹ΡˆΠ΅. НапримСр, 0xC367 Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒΡΡ ΠΊΠ°ΠΊ unsigned int .

Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹ΠΉ

ВсС константы, Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΠ΅ΡΡ с 0b (ΠΈΠ»ΠΈ 0B ), ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹ΠΌΠΈ. Π’ отсутствиС ΠΊΠ°ΠΊΠΈΡ…-Π»ΠΈΠ±ΠΎ Π·Π°ΠΌΠ΅Ρ‰Π°ΡŽΡ‰ΠΈΡ… суффиксов Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠΉ константы выводится ΠΈΠ· Π΅Π΅ значСния Π² соотвСтствии с ΠΏΡ€Π°Π²ΠΈΠ»Π°ΠΌΠΈ, прСдставлСнными Π²Ρ‹ΡˆΠ΅.НапримСр, 0b11101 Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒΡΡ ΠΊΠ°ΠΊ ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΠΉ .

Π²ΠΎΡΡŒΠΌΠ΅Ρ€ΠΈΡ‡Π½ΠΎΠ΅

ВсС константы с Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹ΠΌ Π½ΡƒΠ»Π΅ΠΌ ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ Π²ΠΎΡΡŒΠΌΠ΅Ρ€ΠΈΡ‡Π½Ρ‹ΠΌΠΈ. Если Π²ΠΎΡΡŒΠΌΠ΅Ρ€ΠΈΡ‡Π½Π°Ρ константа содСрТит нСдопустимыС Ρ†ΠΈΡ„Ρ€Ρ‹ 8 ΠΈΠ»ΠΈ 9, выдаСтся сообщСниС ΠΎΠ± ошибкС. Π’ отсутствиС ΠΊΠ°ΠΊΠΈΡ…-Π»ΠΈΠ±ΠΎ Π·Π°ΠΌΠ΅Ρ‰Π°ΡŽΡ‰ΠΈΡ… суффиксов Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… Π²ΠΎΡΡŒΠΌΠ΅Ρ€ΠΈΡ‡Π½ΠΎΠΉ константы выводится ΠΈΠ· Π΅Π΅ значСния Π² соотвСтствии с ΠΏΡ€Π°Π²ΠΈΠ»Π°ΠΌΠΈ, прСдставлСнными Π²Ρ‹ΡˆΠ΅. НапримСр, 0777 Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒΡΡ ΠΊΠ°ΠΊ int .

Copyright (c) 2002-2012 ΠΌΠΈΠΊΡ€ΠΎΠ­Π»Π΅ΠΊΡ‚Ρ€ΠΎΠ½ΠΈΠΊΠ°.ВсС ΠΏΡ€Π°Π²Π° Π·Π°Ρ‰ΠΈΡ‰Π΅Π½Ρ‹.

Π§Ρ‚ΠΎ Π²Ρ‹ Π΄ΡƒΠΌΠ°Π΅Ρ‚Π΅ ΠΎΠ± этой Ρ‚Π΅ΠΌΠ΅? ΠžΡ‚ΠΏΡ€Π°Π²ΡŒΡ‚Π΅ Π½Π°ΠΌ ΠΎΡ‚Π·Ρ‹Π²!

Π₯ΠΎΡ‚ΠΈΡ‚Π΅ большС ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ?

НайдитС ΠΈΡ… Π½Π°

МаксимальноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ unsigned long long int Π² C ++

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ обсудим Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… unsigned long long int Π² C ++. Π­Ρ‚ΠΎ самый большой (64-Π±ΠΈΡ‚Π½Ρ‹ΠΉ) цСлочислСнный Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… Π² C ++.

Π’ΠΎΡ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ свойства Ρ‚ΠΈΠΏΠ° Π΄Π°Π½Π½Ρ‹Ρ… unsigned long long long int:

  • Π’ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… Π±Π΅Π· Π·Π½Π°ΠΊΠ° Ρ…Ρ€Π°Π½ΠΈΡ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ значСния.
  • ВрСбуСтся Ρ€Π°Π·ΠΌΠ΅Ρ€ 64 Π±ΠΈΡ‚.
  • МаксимальноС цСлочислСнноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ сохранСно Π² Ρ‚ΠΈΠΏΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… unsigned long long long int: 18, 446, 744, 073, 709, 551, 615, ΠΎΠΊΠΎΠ»ΠΎ 2 64 — 1 (Π½ΠΎ зависит ΠΎΡ‚ компилятора) .
  • МаксимальноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ сохранСно Π² unsigned long long int, сохраняСтся ΠΊΠ°ΠΊ константа Π² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡ‡Π½ΠΎΠΌ Ρ„Π°ΠΉΠ»Π΅ , Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ ULLONG_MAX .
  • МинимальноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ сохранСно Π² unsigned long long int, Ρ€Π°Π²Π½ΠΎ Π½ΡƒΠ»ΡŽ.
  • Π’ случаС пСрСполнСния ΠΈΠ»ΠΈ ΠΏΠΎΡ‚Π΅Ρ€ΠΈ значимости Ρ‚ΠΈΠΏΠ° Π΄Π°Π½Π½Ρ‹Ρ…, Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ пСрСносится ΠΏΠΎ ΠΊΡ€ΡƒΠ³Ρƒ. НапримСр, Ссли 0 хранится Π² Ρ‚ΠΈΠΏΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… unsigned long long long int ΠΈ ΠΈΠ· Π½Π΅Π³ΠΎ вычитаСтся 1 , Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π² этой ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ станСт Ρ€Π°Π²Π½Ρ‹ΠΌ 18, 446, 744, 073, 709, 551, 615. Π’ΠΎΡ‡Π½ΠΎ Ρ‚Π°ΠΊ ΠΆΠ΅ Π² случаС пСрСполнСния Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ округляСтся Π΄ΠΎ 0 .

НиТС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° для получСния максимального значСния, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ сохранСно Π² unsigned long long int Π² C ++:

C ++

#include

#include

с использованиСм пространства ΠΈΠΌΠ΅Π½ std;

int main ()

{

Π±Π΅Π· Π·Π½Π°ΠΊΠ° Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π±Π΅Π· Π·Π½Π°ΠΊΠ° = ULLONG_MAX;

cout << "Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΈΠ· ΠΊΠ»ΠΈΠΌΠΎΠ²"

<< "константа:" ;

cout << valueFromLimits << "\ n" ;

Π±Π΅Π· Π·Π½Π°ΠΊΠ° long 0 long int Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ int Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅

Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ = Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ - 1;

cout << "Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ с использованиСм обтСкания"

<< "Π²ΠΎΠΊΡ€ΡƒΠ³ собствСнности:"

<< Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ << "\ n" ;

Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ 0;

}

Π’Ρ‹Ρ…ΠΎΠ΄:

Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΈΠ· климатичСской константы: 18446744073709551615
Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ с использованиСм свойства обтСкания: 18446744073709551615
 

Π‘Π°Π·ΠΎΠ²Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π² ARM C ΠΈ C ++

Home / Руководство ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ компилятора

10.2 ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π² ARM C ΠΈ C ++

ΠžΠΏΠΈΡΡ‹Π²Π°Π΅Ρ‚ основныС Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ…, Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹Π΅ Π² ARM C ΠΈ C ++:

Π Π°Π·ΠΌΠ΅Ρ€ ΠΈ Π²Ρ‹Ρ€Π°Π²Π½ΠΈΠ²Π°Π½ΠΈΠ΅ основных Ρ‚ΠΈΠΏΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ…

Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Π΅ ΡƒΠΊΠ°Π·Π°Π½Ρ‹ Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹
ΠΈ СстСствСнноС Π²Ρ‹Ρ€Π°Π²Π½ΠΈΠ²Π°Π½ΠΈΠ΅ основных Ρ‚ΠΈΠΏΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ….

Π’Π°Π±Π»ΠΈΡ†Π° 10-2 Π Π°Π·ΠΌΠ΅Ρ€ ΠΈ соотвСтствиС Ρ‚ΠΈΠΏΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ…

Π’ΠΈΠΏ Π Π°Π·ΠΌΠ΅Ρ€ Π² Π±ΠΈΡ‚Π°Ρ… ЕстСствСнноС Π²Ρ‹Ρ€Π°Π²Π½ΠΈΠ²Π°Π½ΠΈΠ΅ Π² Π±Π°ΠΉΡ‚Π°Ρ… Π”ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ
Π·Π½Π°ΠΊ 8 1 (с Π²Ρ‹Ρ€Π°Π²Π½ΠΈΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΏΠΎ Π±Π°ΠΉΡ‚Π°ΠΌ)

По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΎΡ‚ 0 Π΄ΠΎ 255 (Π±Π΅Π· Π·Π½Π°ΠΊΠ°).

ΠΎΡ‚ –128 Π΄ΠΎ 127 (со Π·Π½Π°ΠΊΠΎΠΌ) ΠΏΡ€ΠΈ компиляции с --signed_chars .

символ со Π·Π½Π°ΠΊΠΎΠΌ 8 1 (с Π²Ρ‹Ρ€Π°Π²Π½ΠΈΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΏΠΎ Π±Π°ΠΉΡ‚Π°ΠΌ)

–128 Π΄ΠΎ 127

символ Π±Π΅Π· Π·Π½Π°ΠΊΠ° 8 1 (с Π²Ρ‹Ρ€Π°Π²Π½ΠΈΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΏΠΎ Π±Π°ΠΉΡ‚Π°ΠΌ)

0 Π΄ΠΎ 255

(подпись) короткая 16 2 (с Π²Ρ‹Ρ€Π°Π²Π½ΠΈΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΏΠΎ полуслову) –32 768 Π΄ΠΎ 32 767
ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΎΠ΅ Π±Π΅Π·Π·Π½Π°ΠΊΠΎΠ²ΠΎΠ΅ 16 2 (с Π²Ρ‹Ρ€Π°Π²Π½ΠΈΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΏΠΎ полуслову) 0 Π΄ΠΎ 65 535
(со Π·Π½Π°ΠΊΠΎΠΌ) Π²Π½ΡƒΡ‚Ρ€ 32 4 (с Π²Ρ‹Ρ€Π°Π²Π½ΠΈΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΏΠΎ словам) –2 147 483 648 Π΄ΠΎ 2 147 483 647
Ρ†Π΅Π»ΠΎΠ΅ число Π±Π΅Π· Π·Π½Π°ΠΊΠ° 32 4 (с Π²Ρ‹Ρ€Π°Π²Π½ΠΈΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΏΠΎ словам) 0 Π΄ΠΎ 4 294 967 295
(подписанный) Π΄Π»ΠΈΠ½Π½Ρ‹ΠΉ 32 4 (с Π²Ρ‹Ρ€Π°Π²Π½ΠΈΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΏΠΎ словам) –2 147 483 648 Π΄ΠΎ 2 147 483 647
Π΄Π»ΠΈΠ½Π½ΠΎΠ΅ Π±Π΅Π·Π·Π½Π°ΠΊΠΎΠ²ΠΎΠ΅ 32 4 (с Π²Ρ‹Ρ€Π°Π²Π½ΠΈΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΏΠΎ словам) 0 Π΄ΠΎ 4 294 967 295
(со Π·Π½Π°ΠΊΠΎΠΌ) Π΄Π»ΠΈΠ½Π½Ρ‹ΠΉ Π΄Π»ΠΈΠ½Π½Ρ‹ΠΉ 64 8 (с Π²Ρ‹Ρ€Π°Π²Π½ΠΈΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΏΠΎ Π΄Π²ΠΎΠΉΠ½ΠΎΠΌΡƒ слову) –9,223,372,036,854,775,808 Π΄ΠΎ 9,223,372,036,854,775,807
Π±Π΅Π·Π·Π½Π°ΠΊΠΎΠ²Ρ‹ΠΉ Π΄Π»ΠΈΠ½Π½Ρ‹ΠΉ Π΄Π»ΠΈΠ½Π½Ρ‹ΠΉ 64 8 (с Π²Ρ‹Ρ€Π°Π²Π½ΠΈΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΏΠΎ Π΄Π²ΠΎΠΉΠ½ΠΎΠΌΡƒ слову) 0 Π΄ΠΎ 18 446 744 073 709 551 615
с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ запятой 32 4 (с Π²Ρ‹Ρ€Π°Π²Π½ΠΈΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΏΠΎ словам) 1.175494351e-38 Π΄ΠΎ 3.40282347e + 38 (Π½ΠΎΡ€ΠΌΠ°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹Π΅ значСния)
Π΄Π²ΠΎΠΉΠ½ΠΎΠΉ 64 8 (с Π²Ρ‹Ρ€Π°Π²Π½ΠΈΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΏΠΎ Π΄Π²ΠΎΠΉΠ½ΠΎΠΌΡƒ слову) 2.22507385850720138e-308 Π΄ΠΎ 1.79769313486231571e + 308 (Π½ΠΎΡ€ΠΌΠ°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹Π΅ значСния)
Π΄Π»ΠΈΠ½Π½Ρ‹ΠΉ Π΄Π²ΠΎΠΉΠ½ΠΎΠΉ 64 8 (с Π²Ρ‹Ρ€Π°Π²Π½ΠΈΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΏΠΎ Π΄Π²ΠΎΠΉΠ½ΠΎΠΌΡƒ слову) 2.22507385850720138e-308 ΠΊ 1.79769313486231571e + 308 (Π½ΠΎΡ€ΠΌΠ°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹Π΅ значСния)
wchar_t

16

32

2 (с Π²Ρ‹Ρ€Π°Π²Π½ΠΈΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΏΠΎ полуслову)

4 (с Π²Ρ‹Ρ€Π°Π²Π½ΠΈΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΏΠΎ словам)

По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΎΡ‚ 0 Π΄ΠΎ 65 535.

0 Π΄ΠΎ 4,294,967,295 ΠΏΡ€ΠΈ компиляции с --wchar32 .

ВсС ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ 32 4 (с Π²Ρ‹Ρ€Π°Π²Π½ΠΈΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΏΠΎ словам) НС ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌΠΎ.
bool (Ρ‚ΠΎΠ»ΡŒΠΊΠΎ C ++) 8 1 (с Π²Ρ‹Ρ€Π°Π²Π½ΠΈΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΏΠΎ Π±Π°ΠΉΡ‚Π°ΠΌ) лоТь ΠΈΠ»ΠΈ ΠΏΡ€Π°Π²Π΄Π°
_Bool (Ρ‚ΠΎΠ»ΡŒΠΊΠΎ C a ) 8 1 (с Π²Ρ‹Ρ€Π°Π²Π½ΠΈΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΏΠΎ Π±Π°ΠΉΡ‚Π°ΠΌ) лоТь ΠΈΠ»ΠΈ ΠΏΡ€Π°Π²Π΄Π°

Π’Ρ‹Ρ€Π°Π²Π½ΠΈΠ²Π°Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠΎΠ² зависит ΠΎΡ‚ контСкста:

  • Π›ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ хранятся Π² рСгистрах, Π½ΠΎ
    ΠΊΠΎΠ³Π΄Π° Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΏΠΎΠΏΠ°Π΄Π°ΡŽΡ‚ Π² стСк, ΠΎΠ½ΠΈ всСгда Π²Ρ‹Ρ€Π°Π²Π½ΠΈΠ²Π°ΡŽΡ‚ΡΡ ΠΏΠΎ словам.НапримСр, разлитая локальная пСрСмСнная char ΠΈΠΌΠ΅Π΅Ρ‚
    Π²Ρ‹Ρ€Π°Π²Π½ΠΈΠ²Π°Π½ΠΈΠ΅ 4.

  • ЕстСствСнноС Π²Ρ‹Ρ€Π°Π²Π½ΠΈΠ²Π°Π½ΠΈΠ΅ ΡƒΠΏΠ°ΠΊΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° 1.

Π¦Π΅Π»ΠΎΠ΅ число

Π¦Π΅Π»Ρ‹Π΅ числа прСдставлСны Π² Π²ΠΈΠ΄Π΅ дополнСния Π΄ΠΎ Π΄Π²ΡƒΡ…. Низкий
слово long long находится ΠΏΠΎ ΠΌΠ»Π°Π΄ΡˆΠ΅ΠΌΡƒ адрСсу Π²
Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ прямого порядка Π±Π°ΠΉΡ‚ΠΎΠ² ΠΈ ΠΏΠΎ ΡΡ‚Π°Ρ€ΡˆΠ΅ΠΌΡƒ адрСсу Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ прямого порядка Π±Π°ΠΉΡ‚ΠΎΠ².

Поплавок

Π’Π΅Π»ΠΈΡ‡ΠΈΠ½Ρ‹ с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ запятой хранятся Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ IEEE:

Для Π΄Π²ΠΎΠΉΠ½Ρ‹Ρ… ΠΈ Π΄Π»ΠΈΠ½Π½Ρ‹Ρ… Π΄Π²ΠΎΠΉΠ½Ρ‹Ρ… количСства
слово, содСрТащСС Π·Π½Π°ΠΊ, ΠΏΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ стСпСни ΠΈ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π·Π½Π°Ρ‡ΠΈΠΌΡ‹ΠΉ
Ρ‡Π°ΡΡ‚ΡŒ мантиссы сохраняСтся с младшим адрСсом ΠΌΠ°ΡˆΠΈΠ½Ρ‹ Π²
Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ прямого порядка Π±Π°ΠΉΡ‚ΠΎΠ² ΠΈ ΠΏΠΎ ΡΡ‚Π°Ρ€ΡˆΠ΅ΠΌΡƒ адрСсу Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ прямого порядка Π±Π°ΠΉΡ‚ΠΎΠ².

ΠœΠ°ΡΡΠΈΠ²Ρ‹ ΠΈ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ утвСрТдСния ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ ΠΊΠΎ всСм указатСлям Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹.
Π² C ΠΈ C ++, ΠΊΡ€ΠΎΠΌΠ΅ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΉ Π½Π° Ρ‡Π»Π΅Π½Ρ‹:

  • БосСдниС Π±Π°ΠΉΡ‚Ρ‹ ΠΈΠΌΠ΅ΡŽΡ‚ адрСса
    ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‚ΡΡ Π½Π° ΠΎΠ΄ΠΈΠ½.

  • ΠœΠ°ΠΊΡ€ΠΎΡ NULL Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅Ρ‚ΡΡ Π΄ΠΎ
    Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 0.

  • ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ†Π΅Π»Ρ‹ΠΌΠΈ числами ΠΈ указатСлями ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ
    Π±Π΅Π· измСнСния ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚Π΅Π»ΡŒΡΡ‚Π²Π°.

  • ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ‚ΠΎΡ€ ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π°Π΅Ρ‚ ΠΎ привСдСниях ΠΌΠ΅ΠΆΠ΄Ρƒ указатСлями Π½Π°
    Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ Π½Π° Π΄Π°Π½Π½Ρ‹Π΅.

  • Π’ΠΈΠΏ size_t опрСдСляСтся ΠΊΠ°ΠΊ Π±Π΅Π· Π·Π½Π°ΠΊΠ°
    int
    .

  • ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ Ρ‚ΠΈΠΏ ptrdiff_t
    ΠΊΠ°ΠΊ подписанный int .

5.3. Π’ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… Β«ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π°Β»

5.3.

Π’ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… Β«ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π°Β»

ΠžΠΏΠ΅Ρ€Π°Π½Π΄Ρ‹ ΠΈ , Π·Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ слСдуСт имя ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ
Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ свой адрСс памяти. Π’ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π° - Β«ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ.
to Β», Π·Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ слСдуСт Ρ‚ΠΈΠΏ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ.ΠŸΡ€Π°Π²ΠΈΠ»ΠΎ получСния
синтаксис ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ этих Ρ‚ΠΈΠΏΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ…:

Для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° Π΄Π°Π½Π½Ρ‹Ρ… T сущСствуСт
сущСствуСт Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ Β«Π£ΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° Π’Β», ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ ΠΊΠ°ΠΊ
Β« Π’ * Β».

Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Π΅ послСдствия примСнСния этого
ΠΏΡ€Π°Π²ΠΈΠ»Π° для основных Ρ‚ΠΈΠΏΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ… C ΠΏΠΎΠΊΠ°Π·Π°Π½Ρ‹ вмСстС с Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°ΠΌΠΈ
объявлСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ….

Π’ΠΈΠΏ Π’

Π Π°Π·ΠΌΠ΅Ρ€ (Π±Π°ΠΉΡ‚Ρ‹)
[]

Π£ΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° T

Π Π°Π·ΠΌΠ΅Ρ€ (Π±Π°ΠΉΡ‚Ρ‹)

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ использования

Π²Π½ΡƒΡ‚Ρ€ 4 Π²Π½ΡƒΡ‚Ρ€ * 4 Π²Π½ΡƒΡ‚Ρ€ * a, * b, * c;
Ρ†Π΅Π»ΠΎΠ΅ число Π±Π΅Π· Π·Π½Π°ΠΊΠ° 4 Ρ†Π΅Π»ΠΎΠ΅ число Π±Π΅Π· Π·Π½Π°ΠΊΠ° * 4 Ρ†Π΅Π»ΠΎΠ΅ число Π±Π΅Π· Π·Π½Π°ΠΊΠ° * d, * e, * f;
ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΠΉ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΉ 2 ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΠΉ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΉ * 4 ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΠΉ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΉ * g, * h, * i;
unsigned short int 2 unsigned short int * 4 unsigned short int * j, * k, * l;
Π΄Π»ΠΈΠ½Π½Ρ‹ΠΉ int 4 Π΄Π»ΠΈΠ½Π½Ρ‹ΠΉ int * 4 Π΄Π»ΠΈΠ½Π½Ρ‹ΠΉ int * m, * n, * o;
Π΄Π»ΠΈΠ½Π½ΠΎΠ΅ Ρ†Π΅Π»ΠΎΠ΅ Π±Π΅Π· Π·Π½Π°ΠΊΠ° 4 Π΄Π»ΠΈΠ½Π½ΠΎΠ΅ Ρ†Π΅Π»ΠΎΠ΅ Π±Π΅Π· Π·Π½Π°ΠΊΠ° * 4 Π΄Π»ΠΈΠ½Π½ΠΎΠ΅ Ρ†Π΅Π»ΠΎΠ΅ Π±Π΅Π· Π·Π½Π°ΠΊΠ° * p, * q, * r;
char 1 char * 4 char * s, * t;
символ бСз знака 1 символ бСз знака * 4 символ бСз знака * u, * v;
с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ запятой 4 с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ запятой * 4 с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ запятой * w, * x;
Π΄Π²ΠΎΠΉΠ½ΠΎΠΉ 8 Π΄Π²ΠΎΠΉΠ½ΠΎΠΉ * 4 Π΄Π²ΠΎΠΉΠ½ΠΎΠΉ * y, * z;
Π΄Π»ΠΈΠ½Π½Ρ‹ΠΉ Π΄Π²ΠΎΠΉΠ½ΠΎΠΉ 8 Π΄Π»ΠΈΠ½Π½Ρ‹ΠΉ Π΄Π²ΠΎΠΉΠ½ΠΎΠΉ * 4 Π΄Π»ΠΈΠ½Π½Ρ‹ΠΉ Π΄Π²ΠΎΠΉΠ½ΠΎΠΉ * a1, * a2;

Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΊ указатСлям Π½Π° созданныС Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ…, C
позволяСт ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Ρ‚ΠΈΠΏΠ° void * .ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ
этого Ρ‚ΠΈΠΏΠ° Ρ…Ρ€Π°Π½ΠΈΡ‚ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° Π»ΡŽΠ±Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅. РСкомСндуСтся ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΡ‚ΡŒ
использованиС этого Ρ‚ΠΈΠΏΠ° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚ΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° Π½Π΅Ρ‚ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π°.

Π Π°Π·ΠΌΠ΅Ρ€ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΉ всСгда ΠΎΠ΄ΠΈΠ½ ΠΈ Ρ‚ΠΎΡ‚ ΠΆΠ΅ нСзависимо ΠΎΡ‚
Π΄Π°Π½Π½Ρ‹Π΅, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ½ΠΈ ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ всС ΠΎΠ½ΠΈ хранят адрСс памяти. На случай, Ссли
структуры Π΄Π°Π½Π½Ρ‹Ρ…, ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ примСняСтся Ρ‚ΠΎΡ‡Π½ΠΎ Ρ‚Π°ΠΊ ΠΆΠ΅. Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€
ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, ΠΊΠ°ΠΊ опрСдСляСтся структура, Π° Ρ‚Π°ΠΊΠΆΠ΅ пСрСмСнная ΠΈ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° Π½Π΅Π΅.
объявлСна ​​структура:

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ contact1 являСтся структурированным Ρ‚ΠΈΠΏΠΎΠΌ ΠΈ
Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ 44 Π±Π°ΠΉΡ‚Π° (20 + 20 + 4), Π° contactPointer ΠΈΠΌΠ΅Π΅Ρ‚
ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Ρ‚ΠΈΠΏΠ° ΠΈ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ всСго 4 Π±Π°ΠΉΡ‚Π°.

5.3.1.

Вопросы для самооцСнки

(limits.h) - Бсылка C ++

SCHAR_MAX 9125_MAX 912EN_MAX 912EN_ 9125 МаксимальноС количСство Π±Π°ΠΉΡ‚ΠΎΠ² Π² ΠΌΠ½ΠΎΠ³ΠΎΠ±Π°ΠΉΡ‚ΠΎΠ²ΠΎΠΌ символС для любого языкового стандарта

) или большС *

28

имя Π²Ρ‹Ρ€Π°ΠΆΠ°Π΅Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ *
CHAR_BIT Число Π±ΠΈΡ‚ΠΎΠ² Π² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π΅ char ΠΈΠ»ΠΈ (Π±Π°ΠΉΡ‚) большС *
SCHAR_MIN МинимальноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ для ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Ρ‚ΠΈΠΏΠ° Π·Π½Π°ΠΊΠΎΠ²Ρ‹ΠΉ символ -127 (-2 7 +1 ) ΠΈΠ»ΠΈ мСньшС *
МаксимальноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ для ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Ρ‚ΠΈΠΏΠ° signed char 127 ( 2 7 -1 ) ΠΈΠ»ΠΈ большС *
UCHAR_MAX МаксимальноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ для ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Ρ‚ΠΈΠΏΠ° unsigned char 255 ( 2 8 -1 ) ΠΈΠ»ΠΈ Π²Ρ‹ΡˆΠ΅ *
CHAR_MIN МинимальноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ для ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Ρ‚ΠΈΠΏΠ° char Π»ΠΈΠ±ΠΎ SCHAR_MIN , Π»ΠΈΠ±ΠΎ 0
CHAR_MAX МаксимальноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ для ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Ρ‚ΠΈΠΏΠ° char SCHAR_MAX 9123_MAX 9127MAX 1 ΠΈΠ»ΠΈ Π²Ρ‹ΡˆΠ΅ *
SHRT_MIN МинимальноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ для ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Ρ‚ΠΈΠΏΠ° short int -32767-20004 (-3276720004 (-3276720004 15 +1 ) ΠΈΠ»ΠΈ мСньшС *
SHRT_MAX МаксимальноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ для ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Ρ‚ΠΈΠΏΠ° short int 32767 ( 2 15 -1
USHRT_MAX МаксимальноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ для ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Ρ‚ΠΈΠΏΠ° unsigned short int 6553 5 ( 2 16 -1 ) ΠΈΠ»ΠΈ большС *
INT_MIN МинимальноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ для ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Ρ‚ΠΈΠΏΠ° int -32767 (-2 15 ) ΠΈΠ»ΠΈ мСньшС *
INT_MAX МаксимальноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ для ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Ρ‚ΠΈΠΏΠ° int 32767 ( 2 15 -1 ) ΠΈΠ»ΠΈ большС *
UINT МаксимальноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ для ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Ρ‚ΠΈΠΏΠ° unsigned int 65535 ( 2 16 -1 ) ΠΈΠ»ΠΈ большС *
LONG_MIN МинимальноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ для ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Ρ‚ΠΈΠΏΠ° 9025 long int

-2147483647 (-2 31 +1 ) или мСньшС *
LONG_MAX МаксимальноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ для ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Ρ‚ΠΈΠΏΠ° long int 2147483647 ( 2 31 -1 ) ΠΈΠ»ΠΈ Π²Ρ‹ΡˆΠ΅ *
ULONG_MAX МаксимальноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ для ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Ρ‚ΠΈΠΏΠ° unsigned long int 42949367295 8 ) ΠΈΠ»ΠΈ большС *
LLONG_MIN МинимальноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ для ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Ρ‚ΠΈΠΏΠ° long long int -9223372036854775807 (-2 63 *

58 ΠΈΠ»ΠΈ ΠΌΠ΅Π½Π΅Π΅ 63 *

58) LLONG_MAX

МаксимальноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ для ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Ρ‚ΠΈΠΏΠ° long long int 9223372036854775807 ( 2 63 -1 ) ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ *
ULLON для ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° 7 ULLO Ρ‚ΠΈΠΏ Π±Π΅Π·Π·Π½Π°ΠΊΠΎΠ²Ρ‹ΠΉ Π΄Π»ΠΈΠ½Π½Ρ‹ΠΉ Π΄Π»ΠΈΠ½Π½Ρ‹ΠΉ int 18446744073709551615 ( 2 64 -1 ) ΠΈΠ»ΠΈ Π²Ρ‹ΡˆΠ΅ *

.

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

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