អ្វីគឺអ្វី? · bei.pm

អត្ថបទនេះត្រូវបានបកប្រែនៅក្នុងរបៀបស្វ័យប្រវត្តិដោយ OpenAI GPT-4o Mini

នៅក្នុងផ្នែកនេះមានអត្ថបទអំពីទ្រង់ទ្រាយឯកសារ និងការត្រួតពិនិត្យវិស្វកម្មត្រឡប់។

នៅក្នុងបច្ចុប្បន្នភាពនេះ:
មានភាសាកម្មវិធីច្រើននៅខាងក្រៅ និងមនុស្សជាច្រើនដែលស្គាល់រឿងខ្លះក្រោមឈ្មោះខុសគ្នា ឬពិតជាមិនដឹងអំពីការប្រព្រឹត្តខុសគ្នានៃរឿងមូលដ្ឋានដូចខ្នោះទេ ពីព្រោះភាសាកម្មវិធីរបស់ពួកគេបានអនុញ្ញាតឱ្យវាជួបប្រទៈពីពួកគេ។

tl;dr:
ការបញ្ចូលសញ្ញា​របស់ខ្ញុំនៅក្នុងលក្ខខណ្ឌ C99 <stdint.h>។ អ្នកណាដែលអាចយល់ពីសញ្ញានេះ នឹងអាចប្រើសញ្ញារបស់ខ្ញុំបានយ៉ាងងាយស្រួល។

សម្ព័ន្ធគត់

Integer គឺជាចំនួនគ្រប់គ្រាន់ ដែលមានន័យថាជាចំនួនគ្មានអង្គចេញក្រៅ។

ក្នុងនេះ Integer ត្រូវបានកំណត់នៅក្នុងទ្រង់ទ្រាយទិន្នន័យជារឿយៗក្នុងស៊ុមលេខថេរ បែបផែននៃការរៀបចំ។ ខ្ញុំនឹងផ្តល់ជូនវាក្នុង Bit - ពីព្រោះ "Byte" និងប្រភេទផ្សេងទៀត (Word, Qword, ...) ជារឿយៗត្រូវបានផ្អែកលើវេទិកា។

ក្រៅពីនេះ ក៏មានការបែងចែកនៅក្នុងប្រភេទ Integer គឺ ចំនួនធម្មជាតិ (ℕ, មានន័យគឺគ្មានសញ្ញា - Unsigned) និង ចំនួនគ្រប់គ្រាន់ (ℤ, មានន័យគឺមានសញ្ញា - Signed).
ព័ត៌មាននេះអាចមើលឃើញបានពីសញ្ញានៅក្នុងឈ្មោះ (us)។

នៅទីនេះ អាចមានចំនួនគ្រប់គ្រាន់ដែលមាន សញ្ញា ត្រូវបានបង្ហាញជាដូចជា EinerkomplementZweierkomplement
សូម្បីតែពុំមានការបង្ហាញផ្សេងទៀត គេនឹងប្រើ Zweierkomplement ពីព្រោះវាជាការបង្ហាញដែលបានគាំទ្រដោយវិជ្ជាជីវៈទំនើប។

ចំនួនគ្មានសញ្ញាណា ត្រូវបានចេញផ្សាយដោយខ្ញុំក្នុងឯកសាររបស់ខ្ញុំជាដូចជា uint ជាមួយនឹងការបញ្ជាក់ពីភាពត្រឹមត្រូវក្នុង Bits
ចំនួនដែលមានសញ្ញា ត្រូវបានចេញផ្សាយដោយខ្ញុំក្នុងឯកសាររបស់ខ្ញុំជាដូចជា sint ផងដែរ ជាមួយនឹងការបញ្ជាក់ពីភាពត្រឹមត្រូវក្នុង Bits

ខ្ញុំមិនប្រើប្រភេទទិន្នន័យ "char" សម្រាប់តួអក្សរ ពីព្រោះតួអក្សរ អាចត្រូវបានបង្ហាញជាចំនួនគ្រប់គ្រាន់ដែលមានការបកប្រែជាពិសេស។
នេះនឹងត្រូវបានបង្ហាញជាដូចជា uint(8)[]។

ឧទាហរណ៍:

សញ្ញាសម្គាល់ C99 stdint.h-សមស្រប ការពិពណ៌នា លំហខ្ទង់លេខ
uint(16) uint16_t លេខខុសគ្នាដែលមិនអាចជូនដំណឹង, ប្រវែង 16 បីត 0 - 65.535
sint(8) int8_t លេខដែលអាចជូនដំណឹង, ប្រវែង 8 បីត, គ្នាកម្រិតពីរ -126 - 127
uint(24) uint32_t:24 លេខខុសគ្នាដែលមិនអាចជូនដំណឹង, ប្រវែង 24 បីត 0 - 16.777.216

តម្លៃទីតាំងទៀបថេរ

លេខទំព័រ គឺជាតម្លៃលេខមួយដែលមានមួយចំណុចពីព្រំដែននៃ លេខរាស្ត្រ (Q) ដែលមាន ចំណុច និង លេខក្រោយចំណុច

សម្រាប់លេខទំព័រ - ដូច្នេះឈ្មោះផងដែរ - ទីតាំងនៃចំណុចត្រូវបានកំណត់ជារួចដោយប្រភេទទិន្នន័យ។
ដោយសារតែនេះ ទំហំលេខនៃលេខប្រភេទទិន្នន័យនេះក៏ត្រូវបានកំណត់ផងដែរ; តាមគណិតវិទ្យាគឺស្ថាប័នលេខ ចប់

ក្នុងជីវិតពិតប្រាកដ ប្រភេទទិន្នន័យនេះត្រូវបានប្រើប្រាស់ជាទូទៅនៅលើវេទិកាដែលគ្មានឧបករណ៍ប៉ុនប៉ងដែលលឿនគ្រប់គ្រាន់ ដោយសារតែការគណនាអំពីលេខទំព័រអាចធ្វើបានតាមរយៈឧបករណ៍លេខគន្លង។

ប្រភេទទិន្នន័យនេះក៏ត្រូវបានប្រើជាដើមដោយប្រព័ន្ធគ្រប់គ្រងទិន្នន័យ នៅពេលដែលត្រូវការតម្រូវការដែល តឹងរឹង ត្រូវបានបំពេញ។
គិតពីប្រព័ន្ធសម្រាប់រក្សាទុកព័ត៌មានហិរញ្ញវត្ថុយ៉ាងចាំបាច់; ល currencies ភាគច្រើនមានកំណត់នៅលើ 2 ស្ថានភាពក្រោយចំណុច។ (ប៉ុន្តែគឺមិនល្អដែលប្រើលេខទំព័រសម្រាប់នេះទេ; វាល្អជាងសម្រាប់រក្សាទុក អនុគមន៍ហិរញ្ញវត្ថុតិចតួច ជាអង្គភាពចំនួន និងទុកឱ្យសល់នៅលើកម្រិតនៃការបង្ហាញ)

ដូចជាក្នុងការបញ្ជាក់លេខគន្លង ខ្ញុំបញ្ជាក់ការបង្ហាញនៃលេខ មុន និង ក្រោយ ចំណុច:
ufixed(9,7) គឺជា ប្រភេទទិន្នន័យដែលរក្សាទុក 9 Bit សម្រាប់តម្លៃមុនចំណុច និង 7 Bit សម្រាប់តម្លៃក្រោយចំណុច; ជាសរុបគឺ 16 Bit និងអាចដcoverកម្រិតពី (0,0) រហូតដល់ (511,127) ។
ការបកស្រាយនេះអាចបង្កើតលេខ 28 ដែលមិនបានប្រើក្នុងការបង្ហាញជាឌីសូម៉ែន ដោយសារតែអ្នកប្រហែលជាមិនចង់មានទីបញ្ចប់ត្រឹមត្រូវ (511,99) ក្នុងការអនុវត្តន៍។

ជំនួសនូវការបកស្រាយ ដោយផ្ទាល់ នៃលេខទំព័រ ជាកន្សោមពី 2 អង្គភាពចំនួន - ដែលជាគ្រប់ពេលនឹងមានអត្រានៅក្នុងការបំលែងទៅជាឌីសូម៉ែន និងការផ្ទេរការដោយដៃ - អាចបកស្រាយថាតំបន់ក្រោយចំណុចជាអង្គភាព អនុគមន៍ នៃការបង្ហាញពេញលេញ។
នៅក្នុងឧទាហរណ៍នៃ ufixed(9,7) នេះនឹងបង្កើតអនុគមន៍នៅលើអ្នកចែកដែលមានតម្លៃ 27 - ដូចនេះតំបន់លេខទៅពី 0,00 រហូតដល់ 511 + 126127 ដើម្បីបំលែងទៅជាការបង្ហាញឌីសូម៉ែន សូមចែកលេខក្រោយចំណុចដោយ 128។
ជាមួយនឹងជម្រើសនេះ អាចធ្វើការបញ្ចូលការគណនាបានយ៉ាងងាយស្រួល ដោយសារតែការផ្ទេរត្រូវបានធ្វើឡើងដោយស្វ័យប្រវត្តិ ដែលជាជម្រើសនេះប្រាកដថា ត្រូវបានស្រឡាញ់
ជម្រើសនេះមានការខ្វះខាត គឺលេខក្រោយចំណុចនៅក្នុងការបង្ហាញឌីសូម៉ែន មិនមានការធានាថានឹងមានការបង្ហាញរឹងមាំទេ ដូច្នេះលេខឌីសូម៉ែនមួយមិនអាចមានតម្លៃ 0.01 ទេ ប៉ុន្តែ 0.007874 ដែលនឹងបង្កើតកំហុសក្នុងការប្រមាណ។

ការបកស្រាយណាមួយដែលត្រូវបានប្រើ នឹងត្រូវបានឯកសារពាក់ព័ន្ធនៅកន្លែងដែលមានការប្រើប្រាស់។

តម្លៃបែបចតុមាត្រឬបែបអាណិត

តម្លៃហ្វ្លូត គឺជាអត្ថបទគណិតវិទ្យាដែលស្មុគស្មាញពេលដែលចំនួនគតិមួយដែលមានការបង្ហាញល្អបំផុតត្រូវបានបង្ហាញតាមរយៈរូបមន្តគណិតវិទ្យាដែលបង្កើតចំនួនក្រោយពីសញ្ញា។ - ហើយមានការទាក់ទងដោយផ្ទាល់ទៅនឹង ការចុះហត្ថលេខាធម្មជាតិ
វិធីដែលត្រូវបានប្រើប្រាស់យ៉ាងទូលំទូលាយដើម្បីអនុវត្តនេះត្រូវបានស្តារឡើងជាមួយ IEEE 754 ហើយត្រូវបានទទួលស្គាល់ជាសកលតាំងពីពេលនោះមក។

ដោយសារតែតម្លៃហ្វ្លូតមានធាតុដូចខាងក្រោម៖

សញ្ញា (01) ឧបករណ៍ ម៉ានធីស

ខណៈដែលសញ្ញាអាចរកឃើញបានយ៉ាងងាយស្រួលជាព័ត៌មានប៊ីនារី បាទ/ទេ តម្លៃពិតប្រាកដត្រូវបានបង្កើតឡើងតាមរយៈសមីការនេះ
ម៉ានធីស * 2ឧបករណ៍

បន្ថែមពីនេះ មានតម្លៃ ដំណោះស្រាយ ជាច្រើន ដែលគ្របដណ្តប់ករណីពិសេស ចំនួនគណិតវិទ្យា - រួមទាំង ±∞ និង NaN ("គ្មានចំនួនត្រឹមត្រូវ")។

តម្លៃហ្វ្លូតមានប្រយោជន៍ពេល ភាពត្រឹមត្រូវមិនសំខាន់ប៉ុន្មាន ពីព្រោះវាគឺជាប្រភេទតម្លៃដែលត្រូវបង្កើតកំហុសប៉ុន្មាន និងបាត់បង់ភាពត្រឹមត្រូវ។ ជាទូទៅតម្លៃហ្វ្លូតត្រូវបានប្រើប្រាស់ដើម្បីកំណត់កូអរដ្រូនដូចជា វ៉ិចទ័រ Vertex នៅក្នុងម៉ូដែល 3D ឬកូរដូច Bézier/Spline សម្រាប់គោលបំណងតំណាងអុបទិច។

ក្នុងទ្រង់ទ្រាយទិន្នន័យ តម្លៃហ្វ្លូតត្រូវបានបញ្ជាក់ជា float(ម៉ានធីស, ឧបករណ៍)
បើទ្រង់ទ្រាយណាមួយដែលមានភាពខុសគ្នាជាមួយ IEEE 754 ត្រូវបានប្រើប្រាស់ នោះវាត្រូវបានកំណត់យ៉ាងត្រឹមត្រូវ។