Ключевое слово Unsigned в C++
имеет ли ключевое слово unsigned значение по умолчанию для определенного типа данных в C++? Я пытаюсь написать функцию для класса для прототипа:
unsigned Rotate(unsigned object, int count)
но я действительно не понимаю, что unsigned
средства. Разве это не должно быть как unsigned int
или что-то?
5 ответов
с ссылке выше:
некоторые из этих типов могут быть изменены с помощью ключевых слов signed, unsigned, short и long. Когда один из этих модификаторов типа используется сам по себе, предполагается тип данных int
Это означает, что вы можете предположить, что автор использует ИНЦ.
Целое Число Типа:
short -> signed short
signed short
unsigned short
int -> signed int
signed int
unsigned int
signed -> signed int
unsigned -> unsigned int
long -> signed long
signed long
unsigned long
будьте осторожны char:
char (is signed or unsigned depending on the implmentation)
signed char
unsigned char
имеет ли ключевое слово unsigned значение по умолчанию для типа данных в C++
да, signed и unsigned также могут использоваться как автономные спецификаторы типа
целочисленные типы данных char, short, long и int могут быть подписаны или без знака в зависимости от диапазона чисел, которые необходимо представить. Подписанные типы могут представлять как положительные, так и отрицательные значения, тогда как неподписанные типы могут представлять только положительные значения (и ноль).
беззнаковый целое число, содержащее n бит, может иметь значение от 0 до 2n - 1 (что 2n разные значения).
однако signed и unsigned также могут использоваться как автономные спецификаторы типа, что означает то же самое, что signed int и unsigned int соответственно. Следующие два объявления эквивалентны:
unsigned NextYear;
unsigned int NextYear;
вы можете прочитать о ключевое слово без знака в C++ Reference.
в этом вопросе есть два разных типа, подписанные и не подписанные. По умолчанию целые числа подписываются, что означает, что они могут иметь отрицательные значения.
в 32-разрядной системе целое число равно 32 битам, что означает, что оно может содержать значение ~4 миллиарда.
и когда он подписан, это означает, что вам нужно разделить его, оставив от -2 миллиардов до +2 миллиардов.
когда это unsigned однако значение не может содержат любые отрицательные числа, поэтому для целых чисел это будет означать от 0 до +4 миллиардов.
есть немного более informationa насчет этого на Википедия.
Да, это означает unsigned int
. Раньше было так, что если вы не указали тип данных в C, было много мест, где он просто предполагал int
. Это была попытка, например, типов возвращаемых функций.