Pozitivaj kaj negativaj nombroj en komputado: Malsamoj inter versioj

[nekontrolita versio][nekontrolita versio]
Enhavo forigita Enhavo aldonita
Neniu resumo de redakto
Neniu resumo de redakto
Linio 1:
Por fari komputadon kun uzo de nenegativaj nombroj en komputiloj necesas iel ilin priskribi kaj konservi en [[registrilo]]j kaj [[memoro]].
 
En komputiloj ĝenerale estadas uzataj signaj variabloj (kiuj povas teni negativajnegativajn kaj nenegativaj nombojn) kaj sensignaj (kiuj ne povas teni negativajnur nenegativaj nombojn).
 
Variabloj kun [[flosanta punkto]] (proksimumigo de reelaj nombroj en komputiloj) ĉiam estas signaj.
[[entjero|Entjera]]j variabloj estadas kaj signaj kaj sensignaj.
 
Inter multaj eblaj manieroj de priskribo de signo eblaj du variantoj estas kutime (nun) uzataj.
 
Inter multaj manieroj de priskribo de signo eblaj du variantoj estas kutime (nun) uzataj.
 
==Priskribo kun aparta bito por signo==
Linio 11 ⟶ 12:
La unua varinto estas per uzo de aparta [[bito]] por signo, kaj la restas bitoj priskribas la [[modulo]]n de la nombro. Unu el ĉefaj malavantaĝoj de ĉi tiu maniero estas tiu ke [[nulo]] povas esti skribata per du diversaj manieroj - +0 kaj -0. Tiam operacio de [[komparo]] devas konsideri ĉi tiun okazon kaj redoni rezulton de [[egaleco]] se unu el la argumentoj estas +0 kaj la alia -0. Sekve, se memoro de komputilo estas uzata por konservi ion alian, ne neombroj sed ekzemple [[teksto]]n, ĉi tia operacio de komparo jam ne povas esti uzata, ĉar en maloftaj sed realigeblaj okazoj ĝi ricevos ke du teksteroj estas la samaj, kvankam ili estas diversaj, se unu el teksteroj aspektas kiel +0 kaj la alia aspektas kiel -0.
 
Nun ĉi tia priskribo kutime estadas uzata por nombroj kun [[flosanta punkto]] (proksimumigo de reelaj nombroj en komputiloj).
 
==Priskribo per aldona kodo==
Linio 114 ⟶ 115:
== Uzo en programlingvoj ==
 
Plejparto de [[programlingvo]]j ne donas eblecon libere elekti ĉu la variablo estasestu signa aŭ sensigna. Pri [[litero|literaj]] variabloj (por enteni unu literon) la signeco estadas diversa, sed pli ofte ili estas sensignaj. La pli longaj (kun pli granda kvanto de bitoj) variabloj kutime estadas nur signaj.
 
Inter nemultaj programlingvoj kiuj donas eblecon specifi signecon de entjeraj variabloj estas [[C (programlingvo)|C]] kaj [[C++]].
 
SignaEn la lingvoj signa [[entjero|entjera]] variablo ''x'' estas difinata kiel (por diversa kvanto da bitoj):
:signed char x;
:short x;
:int x;
:long x;
kaj sensigna entjera variablo ''x'' estas difinata kiel:
:unsigned char x;
:unsigned short x;
:unsigned x;
:unsigned long x;
Ĉi tie defaŭlta signeco de litera variablo (''char'') pospovas estas diversa, por ricevi certan rezulton necesas skribi la deziratan signecon per vortoj "signed" kaj "unsigned". La aliaj variabloj defaŭlte estas signaj, por fari ilin sensignajn vorto "unsigned" estas uzata.
 
[[Kategorio:Komputiko]]