Підписано проти Без підпису
Наша система числення поширюється від негативної нескінченності до позитивної нескінченності з нулем праворуч в середині. Однак у програмуванні в основному є два типи чисел; підписані та непідписані. Основна відмінність між підписаним і непідписаним числом - це, можливо, використання негативних чисел. Непідписані числа можуть мати лише значення нуля або більше. На відміну від цього, підписані числа є більш природними з діапазоном, який включає від’ємні до додатні числа.
Створення підписаних і непідписаних чисел викликало необхідність представлення числових значень з дуже обмеженими ресурсами. Наприклад, використовуючи 8 біт, у вас є всього 256 комбінацій. Якщо число, яке не підписується, означає будь-яке значення від 0 до 255. Навпаки, наявність підписаного номера означає, що ви вже трохи втрачаєте для подання знака. З 7 біт у вас є максимум 128 комбінацій, тому ваш діапазон з 8-бітовим підписаним номером становить від -128 до 127. Тож якщо у вас обмежені ресурси, як, наприклад, у перші дні обчислень, використання непідписаних чисел було шляхом..
Використовуючи підписані та непідписані номери в програмуванні, безпечніше використовувати те чи інше, оскільки одночасне використання обох може спричинити за собою проблеми. Перший - це коли ви порівнюєте неподписаний із підписаним номером. Зазвичай це призводить до попереджень, але компілятор міг би їх скомпілювати. Друга і більш серйозна проблема - це коли ви присвоюєте вміст безпідписаного номера підписаному номеру. Якщо значення безпідписаного числа перевищує максимальне значення підписаного числа, це призведе до помилки.
У міру розвитку технологій ресурси ставали все більш рясними, а використання безпідписаних номерів стає все менш необхідним. Щоб проілюструвати це, майте на увазі, що 32-бітове довге число може мати максимальне підписане значення 2 мільйони або 4 мільйони, якщо воно не підписане. Коли ви переходите на 64 біти, різниця становить між 90 і 180 квінтільйона; значення, які рідко використовуються, якщо взагалі в загальних програмах.
Підсумок:
1.Непідписаний номер включає лише нульові та додатні числа, тоді як підписані номери включають негативні числа.
2.Призначені числа мають половину максимального значення безпідписаних чисел.
3. Змішування підписаних та непідписаних номерів може призвести до проблем.
4. Використання підписаних чи непідписаних номерів мало стосується сучасних програм.