Podepsáno a nepodepsáno

Anonim

Podepsáno / nepodpísáno

Náš číselný systém se rozšiřuje od negativního nekonečna k pozitivnímu nekonečnu s nulou přímo uprostřed. V programování však existují v podstatě dva typy čísel; podepsané a nepodepsané. Hlavní rozdíl mezi podepsaným a nepodepsaným číslem je schopnost používat záporná čísla. Nepodpísané čísla mohou mít pouze hodnoty nulové nebo větší. Naproti tomu podepsané čísla jsou přirozenější s rozsahem, který obsahuje negativní až kladné čísla.

Vytvoření podepsaných a nepodepsaných čísel bylo vyvoláno potřebou reprezentovat číselné hodnoty s velmi omezenými zdroji. Například pomocí 8 bitů máte celkem pouze 256 kombinací. S nepodepsaným číslem, to znamená jakoukoliv hodnotu od 0 do 255. Naproti tomu podepsané číslo znamená, že už ztrácíte bit pro reprezentaci znaménka. Se 7 bity máte maximálně 128 kombinací, takže rozsah s 8-ti bitovým podepsaným číslem je od -128 do 127. Takže pokud máte omezené zdroje, jako v počátečních dnech výpočetní techniky, bylo by vhodné použít nepodepsané čísla.

Při použití podepsaných a nepodepsaných čísel v programování je bezpečnější používat jednu či druhou, protože současně s oběma může dojít k problémům. Prvním je porovnání nepodepsaného s podepsaným číslem. To obvykle vede k výstrahám, ale kompilátor je může i tak kompilovat. Druhým a závažnějším problémem je přiřazení obsahu nepodepsaného čísla podepsanému číslu. Je-li hodnota nepodepsaného čísla větší než maximální hodnota podepsaného čísla, mohlo by to vést k chybě.

Jak se technologie vyvíjí, zdroje se stávají bohatšími a používání nepodepsaných čísel je stále méně a méně potřebné. Chcete-li to ilustrovat, nezapomeňte, že 32bitové číslo může mít maximální podepsanou hodnotu 2 miliony nebo 4 miliony, pokud není podepsáno. Když se přesunete do 64 bitů, rozdíl je mezi 90 a 180 kvintiliony; hodnoty, které jsou zřídka používané, pokud jsou všechny v běžných programech.

Souhrn:

1.Zadané číslo obsahuje pouze nulové a pozitivní čísla, zatímco podepsaná čísla obsahují záporná čísla. 2.Podpisovaná čísla mají polovinu maximální hodnoty nepodepsaných čísel. 3.Mixování podepsaných a nepodepsaných čísel může způsobit problémy. 4. Používání podepsaných nebo nepodepsaných čísel má v moderních aplikacích malou roli.