Основное различие: Signed char и unsigned char - это два типа данных, используемых в программировании на Си. И без знака, и со знаком char используются для хранения символов и состоят из области 8 бит. Символы без знака имеют значения от 0 до 255, а символы со знаком имеют значения от –128 до 127 (на компьютере с 8-разрядными байтами и арифметикой дополнения до двух).
C90 позволил C использовать ключевые слова со знаком и без знака с символом. Важно отметить, что они используются только тогда, когда нужно обрабатывать малые целочисленные значения. Знаковый символ и неподписанный символ имеют размер 8 бит на 16-битной машине. Они в первую очередь отличаются представленным ими диапазоном. Диапазон значений беззнакового символа составляет от 0 до 255, а размер символа без знака - от -128 до 127.
Преобразование char в значения int выполняется автоматически с помощью C. Однако он все еще зависит от машины, которая решает, что результат будет отрицательным или нет. Верхний регистр A эквивалентен целочисленному значению 65.
Термины «без знака» и «со знаком», используемые с символом char, означают, что если содержимое этих восьми битов интерпретируется как целое число, то эти термины могут иметь некоторое значение. Символьный тип данных обычно имеет тип без знака по умолчанию. Однако в режимах C ++ и ANSI C существует возможность явно объявить их как символ со знаком или без знака. В беззнаковых знаках 8 битов используются в качестве битов данных, тогда как в памяти для представления знакового знака 1 бит (самый старший бит) используется для знаковых битов, а 7 битов используются в качестве битов данных. Если бит со знаком равен 0, это означает, что число положительное. Если бит со знаком равен 1, то число является отрицательным.
Сравнение между подписанным символом и неподписанным символом:
Подпись Чар | Неподписанный символ | |
Спектр | От -128 до +127 | От 0 до 255 |
Типичная ширина бита | 1 байт | 1 байт |
Пример (х = 10000010) | Подпись char x = -2 | Неподписанный символ = 82 |
Представление | 1 бит = бит со знаком 7 бит = бит данных | 8 бит = бит данных |
декларация | Подпись char b | Неподписанный символ |