Подписанный и неподписанный

Anonim

Подпись vs Unsigned

Наша система чисел простирается от отрицательной бесконечности до положительной бесконечности с нулем справа в середине. Однако в программировании существуют в основном два типа чисел; подписанный и неподписанный. Основное различие между подписанным и неподписанным числом - это, конечно, умение использовать отрицательные числа. Безподписанные числа могут иметь только значения от нуля или выше. Напротив, подписанные числа более естественны с диапазоном, который включает отрицательные или положительные числа.

Создание подписанных и неподписанных номеров было вызвано необходимостью представлять числовые значения с очень ограниченными ресурсами. Например, используя 8 бит, вы должны иметь всего 256 комбинаций. С беззнаковым числом это означает любое значение от 0 до 255. В отличие от этого, имея подписанный номер, вы уже теряете бит для представления знака. С 7 битами у вас есть до 128 комбинаций, поэтому ваш диапазон с 8-разрядным номером подписан с -128 до 127. Таким образом, если у вас ограниченные ресурсы, например, в первые дни вычислений, то можно использовать неподписанные числа.

При использовании подписанных и неподписанных чисел в программировании безопаснее использовать одно или другое, так как одновременное использование обоих может привести к проблемам. Во-первых, когда вы сравниваете без знака с подписанным номером. Обычно это приводит к предупреждениям, но компилятор может его скомпилировать. Вторая и более серьезная проблема заключается в том, что вы назначаете содержимое неподписанного числа подписанному номеру. Если значение беззнакового числа больше максимального значения подписанного числа, это приведет к ошибке.

По мере развития технологий ресурсы стали более многочисленными, а использование беззнаковых чисел становится все менее и менее необходимым. Чтобы проиллюстрировать это, имейте в виду, что 32-разрядное длинное число может иметь максимальное знаковое значение 2 миллиона или 4 миллиона, если оно не указано. Когда вы переходите на 64 бит, разница составляет от 90 до 180 квинтиллионов; значения, которые редко используются, если вообще в общих программах.

Резюме:

1.Указанное число включает только нулевые и положительные числа, в то время как числа с цифрами включают отрицательные числа. 2.Созначенные числа имеют половину максимального значения беззнаковых чисел. 3. Микширование подписанных и неподписанных номеров может привести к проблемам. 4.Использование подписанных или неподписанных номеров имеет малое отношение к современным приложениям.