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