Bij een normale variabele kunnen we geen +0 en -0 hebben en hebben we daarom maar ene 0 in de reeks.
Het heeft weinig met 'kunnen' te maken en alles met 'willen'.
Het zou erg onhandig zijn geweest als een binaire codering bij 000000 etc een negatief getal zou voorstellen omdat er dan moeilijke conversie problemen gaan ontstaan tussen verschillende typen.
Er is werkelijk geen enkel probleem met het hebben van een representatie waarbij 000000 een negatief getal is om precies dezelfde reden dat er geen enkel probleem is met bitreeksen karakters, soorten appels, enz. weer te geven.
En 000000 als negatief getal is ook niet handig bij and en or verwerkingen
And en Or zijn binaire operaties op bits. Als je ze ook wilt gebruiken op andere dingen, zul je hoe dan ook aan moeten geven hoe dat dan werkt.
Een var die dan 0 is heeft dan ergens een 1 staan in de codering en dat is voor een programmeur bullshit.
Wat een onzin. Als je een representatie gebruikt waarbij het bovenstaande gebeurt dan houdt je daar als programmeur dus rekening mee...
Er zijn typen die wel een +0 en -0 hebben maar die worden gebruikt bij speciale berekeningen die een nauwkeurige balans nodig hebben.
Voorbeeld?
Meestal hebben die ook tig cijfers achter de komma die exact in balans zijn.
Dus bijvoorbeeld -10.000000 tot +10.000000
en men kan dan ook nog eens de Exxx met + en - instellen.
Hier lijkt het er op dat je het hebt over floating point getallen. Deze hebben een sign-bit en zijn dan volgens jou automatisch 'in balans'.
Met deze techniek weet men precies dat na een deling de waarde + of - is ook al is het getal kleiner dan de computer nog aan kon.
Als het getal kleiner was dan de computer aan kon dan moet je misschien sowieso niet naar het antwoord van de deling kijken (maar gewoon je antwoord genereren op basis van de oorspronkelijke getallen).
Bij normale variabelen zou men -7 en 0 bekomen, maar doordat de 0 zowel + als - kan zijn heeft men nooit een sign die 0 geeft als men die speciale type toepast.
Maar daarbij maak je dus impliciet de aanname dat je een sign gebruikt die geen 0 zal teruggeven. Dat hoeft natuurlijk niet het geval te zijn. Je kunt ook best met een sign werken waarbij sign(0) = sign(-0) =0.