Բացասական զրո

**Բացասական զրո,** զրո համապատասխան նշանով: Սովորական թվաբանության մեջ 0 թիվը նշան չունի, այնպես որ −0, +0 և 0-ը համարժեք են։ Այնուամենայնիվ, հաշվարկներում որոշ թվերի ներկայացումներ թույլ են տալիս գոյություն ունենալ երկու զրո, որոնք հաճախ նշվում են −0 (բացասական զրո) և +0 (դրական զրոյով), որոնք համարվում են հավասար թվային համեմատական ​​գործողություններով, բայց որոշակի գործողություններում հնարավոր տարբեր վարքագծով: Սա տեղի է ունենում ամբողջ թվերի համար նշանի մեծության և լրացնող թվերի ներկայացման մեջ և լողացող թվերի մեծ մասում: 0 թիվը սովորաբար կոդավորված է որպես +0, բայց դեռ կարող է ներկայացվել +0, -0 կամ 0-ով:

IEEE 754 ստանդարտը լողացող կետով թվաբանության համար (ներկայումս օգտագործվում է համակարգիչների և ծրագրավորման լեզուների մեծ մասի կողմից, որոնք աջակցում են լողացող կետով թվեր) պահանջում է և՛ +0, և՛ −0: Ստորագրված զրոներով իրական թվաբանությունը կարելի է համարել ընդլայնված իրական թվային գծի այնպիսի տարբերակ, որ 1/−0 = −∞ և 1/+0 = +∞; բաժանումը սահմանված չէ միայն ±0/±0 և ±∞/±∞ համար:

Բացասական նշանով զրոն արձագանքում է 0-ին ներքևից մոտենալու մաթեմատիկական վերլուծության հայեցակարգին որպես միակողմանի սահման, որը կարող է նշանակվել x → 0−, x → 0− կամ x → ↑0: «−0» նշումը կարող է օգտագործվել ոչ պաշտոնապես՝ նշելու բացասական թիվը, որը կլորացված է զրոյի: Բացասական զրո հասկացությունն ունի նաև որոշ տեսական կիրառություններ վիճակագրական մեխանիկայի և այլ առարկաների մեջ:

Ենթադրվում է, որ IEEE 754-ում ստորագրված զրոյի ընդգրկումը շատ ավելի հեշտ է դարձնում թվային ճշգրտության հասնելը որոշ կարևոր խնդիրների դեպքում, n մասնավորապես բարդ տարրական ֆունկցիաներով հաշվելիս: Մյուս կողմից, ստորագրված զրոյի հայեցակարգը հակասում է մաթեմատիկայում արված սովորական ենթադրությանը, որ բացասական զրոն նույն արժեքն է, ինչ զրոյականը: Ներկայացումները, որոնք թույլ են տալիս բացասական զրո, կարող են սխալների աղբյուր լինել ծրագրերում, եթե ծրագրային ապահովման մշակողները հաշվի չառնեն, որ թեև երկու զրոյական ներկայացումները թվային համեմատություններում իրենց հավասար են պահում, դրանք տարբեր արդյունքներ են տալիս որոշ գործողություններում:

## Ներկայացուցչություններ
Երկուական ամբողջ թվերի ձևաչափերը կարող են օգտագործել տարբեր կոդավորումներ: Լայնորեն օգտագործվող երկուսի կոմպլեմենտի կոդավորման մեջ զրոն անստորագիր է: Ամբողջ թվերի համար 1+7 բիթ նշանի և մեծության ներկայացման մեջ բացասական զրոն ներկայացված է բիթային տողով։ 8-բիթանոցների լրացման ներկայացման մեջ բացասական զրոն ներկայացված է բիթային տողով/ Այս բոլոր երեք կոդավորումներում դրական կամ անստորագիր զրոն ներկայացված է հետևյալով, սակայն վերջին երկու կոդավորումները (նշված զրոյով) հազվադեպ են ամբողջ թվերի ձևաչափերի համար: Ստորև նշված զրոյով ամենատարածված ձևաչափերը լողացող կետի ձևաչափերն են (IEEE 754 ձևաչափեր կամ նմանատիպ ձևաչափեր):
աջից|մինի|400x400փքս|Բացասական զրո IEEE 754 ներկայացմամբ երկուական32-ում
IEEE 754 երկուական լողացող կետի ձևաչափերում զրոյական արժեքները ներկայացված են կողմնակալ ցուցիչով և նշանակալից և երկուսն էլ զրո են: Բացասական զրոյի նշանի բիթը դրված է մեկ: Որոշ հաշվարկների արդյունքում կարելի է ստանալ բացասական զրո, օրինակ՝ բացասական թվի վրա թվաբանական ներհոսքի արդյունքում (այլ արդյունքներ նույնպես հնարավոր են), կամ −1,0×0,0, կամ պարզապես որպես −0,0։

IEEE 754 տասնորդական լողացող կետի ձևաչափերում բացասական զրոն ներկայացված է ձևաչափի ցանկացած վավեր ցուցիչով ֆորմատի միջակայքում, իսկական նշանակությունը՝ զրո, իսկ նշանի բիթը՝ մեկ:

## Հատկություններ և բեռնաթափում
IEEE 754 լողացող կետի ստանդարտը սահմանում է դրական զրոյի և բացասական զրոյի վարքագիծը տարբեր գործողությունների ժամանակ: Արդյունքը կարող է կախված լինել IEEE կլորացման ռեժիմի ընթացիկ կարգավորումներից:

### Նշում
Համակարգերում, որոնք ներառում են ինչպես ստորագրված, այնպես էլ անստորագիր զրոներ, նշումը

0

+

և

0

−

երբեմն օգտագործվում է ստորագրված զրոների համար:

### Թվաբանություն
Գումարը և բազմապատկումը փոխադարձ են, բայց կան որոշ հատուկ կանոններ, որոնք պետք է հետևել, ինչը նշանակում է, որ հանրահաշվական պարզեցման համար սովորական մաթեմատիկական կանոնները կարող են չկիրառվել: Այն

=

ստորև նշված նշանը ցույց է տալիս ստացված լողացող կետի արդյունքները (դա սովորական հավասարության օպերատոր չէ):

Բազմապատկելիս կամ բաժանելիս միշտ պահպանվում է նշանների սովորական կանոնը.

* (-0) \cdot \left|x \right| =
-0\,\! (for x տարբերվում է ±∞)
* \frac{-0}{ \left| x \right| } = -0\,\! (for x տարբերվում է 0)
* (-0) \cdot (-0) = +0\,\!

Նշված զրո գումարելու կամ հանելու հատուկ կանոններ կան.

* x + (\pm 0) = x\,\! (for x different from 0)
* (-0) + (-0) = (-0) - (+0) = -0\,\!
* (+0) + (+0) = (+0) - (-0) = +0\,\!
* x - x = x + (-x) = +0\,\! (ցանկացած վերջավորության համար x, −0երբ կլորացվում է դեպի բացասական )

Բացասական զրոյի պատճառով (և նաև, երբ կլորացման ռեժիմը դեպի վեր կամ վար է), −(x−y) և (−x) − (−y) արտահայտությունները լողացող կետով x և y փոփոխականների համար չեն կարող փոխարինվել y-ով։ − x. Այնուամենայնիվ (−0) + x-ը կարող է փոխարինվել x-ով՝ մոտակա կլորացմամբ (բացառությամբ այն դեպքերի, երբ x-ը կարող է ազդանշանային NaN լինել):

Որոշ այլ հատուկ կանոններ.

* \left|-0 \right| = +0\,\!
* \sqrt{-0} = -0\,\!
* \frac{-0}{-\infty} = +0\,\!  (հետևում է բաժանման նշանի կանոնին)
* \frac{\left|x\right|}{-0} = -\infty\,\!  (ոչ զրոյի համար  𝑥, հետևում է բաժանման նշանի կանոնին)
* {\pm 0} \times {\pm \infty} = \mbox{NaN}\,\! (Համար կամ ընդհատում չէ անորոշ ձևի համար)
* \frac{\pm 0}{\pm 0} = \mbox{NaN}\,\!

Ոչ զրոյական թվի բաժանումը զրոյի վրա սահմանում է բաժանումը զրոյի վրա, իսկ գործողությունը, որը արտադրում է NaN, սահմանում է գործողության անվավեր դրոշակ: Բացառության մշակիչը կանչվում է, եթե միացված է համապատասխան դրոշի համար:

### Համեմատություններ
Համաձայն IEEE 754 ստանդարտի, բացասական զրո և դրական զրոն պետք է համեմատվեն սովորական (թվային) համեմատական ​​օպերատորների հետ, ինչպիսիք են C-ի և Java-ի == օպերատորները: Այդ լեզուներում կարող են անհրաժեշտ լինել ծրագրավորման հատուկ հնարքներ՝ երկու արժեքները տարբերելու համար.

* Մուտքագրեք համարը միացնելով ամբողջ թվի տիպին, որպեսզի նայեք նշանի բիթին բիթերի օրինակով;
* օգտագործելով ISO C copysign() ֆունկցիան (IEEE 754 copySign օպերացիա)՝ զրոյի նշանը որևէ ոչ զրոյական թվի պատճենելու համար.
* օգտագործելով ISO C signbit() մակրո (IEEE 754 isSignMinus գործողություն), որը ցույց է տալիս, թե արդյոք թվի նշանի բիթը սահմանված է.
* վերցնելով զրոյի փոխադարձը, որպեսզի ստացվի կամ 1/(+0) = +∞ կամ 1/(−0) = −∞ (եթե զրոյական բացառությամբ բաժանումը թակարդում չկա):

Նշում. ինտեգրալ տիպի ձուլումը միշտ չէ, որ կաշխատի, հատկապես երկուսի կոմպլեմենտ համակարգերի վրա:

Այնուամենայնիվ, որոշ ծրագրավորման լեզուներ կարող են տրամադրել այլընտրանքային համեմատական ​​օպերատորներ, որոնք տարբերում են երկու զրոները: Սա, օրինակ, Java-ի Double wrapper դասի հավասար մեթոդի դեպքն է։

## Կլորացված արժեքներով, ինչպիսիք են ջերմաստիճանը
Ոչ պաշտոնական ձևով, կարելի է օգտագործել «−0» նշումը բացասական արժեքի համար, որը կլորացվել է զրոյի: Այս նշումը կարող է օգտակար լինել, երբ բացասական նշանը նշանակալի է. օրինակ՝ Ցելսիուսի ջերմաստիճանը աղյուսակավորելիս, որտեղ բացասական նշանը նշանակում է ցրտից ցածր:

## Վիճակագրական մեխանիկայի մեջ
Վիճակագրական մեխանիկայի մեջ երբեմն օգտագործվում են բացասական ջերմաստիճաններ՝ նկարագրելու համար պոպուլյացիայի ինվերսիա ունեցող համակարգերը, որոնք կարելի է համարել դրական անսահմանությունից մեծ ջերմաստիճան, քանի որ բնակչության բաշխման ֆունկցիայի էներգիայի գործակիցը −1/Ջերմաստիճան է։ Այս համատեքստում −0 ջերմաստիճանը (տեսական) ավելի մեծ ջերմաստիճան է, քան ցանկացած այլ բացասական ջերմաստիճան, որը համապատասխանում է բնակչության ինվերսիայի (տեսական) առավելագույն հնարավոր չափին, հակառակ ծայրահեղությունը +0-ին:

## Նշումներ

* 
* 
* 
* a *decimal* floating-point specification that includes negative zero

## Հետագա ընթերցում

* the changes in the Fortran `SIGN` function in Fortran 95 to accommodate negative zero
* JScript's floating-point type with negative zero by definition
* representation of negative zero in the Java virtual machine
* how to handle negative zero when comparing floating-point numbers
* one's complement numbers on the UNIVAC 1100 family computers

Կատեգորիա:Ամբողջ թվեր
Կատեգորիա:Բացասական թվեր
Կատեգորիա:Բինար գործողություններ
Կատեգորիա:Թվաբանություն
Կատեգորիա:Համակարգչային ճարտարապետություն
Կատեգորիա:Հաշվարկման համակարգեր
Կատեգորիա:Մաթեմատիկական հաստատուններ
Կատեգորիա:Վիճակագրական մեխանիկա