Unsigned int диапазон: C++ | Типы данных

Диапазоны типов данных | Microsoft Learn

Twitter LinkedIn Facebook Адрес электронной почты

  • Статья
  • Чтение занимает 2 мин

32-разрядные и 64-разрядные компиляторы Microsoft C++ распознают типы в таблице далее в этой статье.

  • int (unsigned int)

  • __int8 (unsigned __int8)

  • __int16 (unsigned __int16)

  • __int32 (unsigned __int32)

  • __int64 (unsigned __int64)

  • short (unsigned short)

  • long (unsigned long)

  • long long (unsigned long long)

Если имя начинается с двух символов подчеркивания (__), тип данных является нестандартным.

Диапазоны, представленные в следующей таблице, включают указанные значения.

Имя типаБайтыДругие именаДиапазон значений
int4signedОт -2 147 483 648 до 2 147 483 647
unsigned int4unsignedОт 0 до 4 294 967 295
__int81charОт -128 до 127
unsigned __int81unsigned charОт 0 до 255
__int162short, short int, signed short intОт -32 768 до 32 767
unsigned __int162unsigned short, unsigned short intОт 0 до 65 535
__int324signed, signed int, intОт -2 147 483 648 до 2 147 483 647
unsigned __int324unsigned, unsigned intОт 0 до 4 294 967 295
__int648long long,
signed long long
От -9 223 372 036 854 775 808 до 9 223 372 036 854 775 807
unsigned __int648unsigned long longОт 0 до 18 446 744 073 709 551 615
bool1нетfalse либо true
char1нетПо умолчанию от -128 до 127

От 0 до 255 при компиляции с помощью /J

signed char1нетОт -128 до 127
unsigned char1нетОт 0 до 255
short2short int, signed short intОт -32 768 до 32 767
unsigned short2unsigned short intОт 0 до 65 535
long4long int, signed long intОт -2 147 483 648 до 2 147 483 647
unsigned long4unsigned long intОт 0 до 4 294 967 295
long long8none (но эквивалентно __int64)От -9 223 372 036 854 775 808 до 9 223 372 036 854 775 807
unsigned long long8none (но эквивалентно unsigned __int64)От 0 до 18 446 744 073 709 551 615
enum
непостояннонет
float4нет3,4E +/- 38 (7 знаков)
double8нет1,7E +/- 308 (15 знаков)
long doubleто же самое, что и doubleнетТо же, что double
wchar_t2__wchar_tОт 0 до 65 535

В зависимости от характера использования переменная типа __wchar_t обозначает расширенный символьный или многобайтовый символьный тип. Чтобы указать константу расширенного символьного типа, перед символьной или строковой константой следует использовать префикс

L .

signed и unsigned — это модификаторы, которые можно использовать с любым целочисленным типом, кроме типа bool. Обратите внимание, что char, signed charи unsigned char — это три разных типа, предназначенных для механизмов, подобных перегрузке и шаблонам.

Размер типов int и unsigned int — 4 байта. Однако переносимый код не должен зависеть от размера int , поскольку языковой стандарт позволяет варьировать его в зависимости от реализации.

C и C++ в Visual Studio также поддерживают целочисленные типы с указанием размера. Дополнительные сведения см. в разделе __int8, __int16, __int32, __int64 и ограничениях целых чисел.

Дополнительные сведения об ограничениях размеров каждого типа см. в разделе «Встроенные типы».

Диапазон перечисляемых типов зависит от контекста языка и указанных флажков компилятора. Дополнительные сведения см. в статьях Объявления перечислений C и Объявления перечислений C++.

Ключевые слова
Встроенные типы

Digital Chip

Все данные в языке Си имеют свой тип. Переменные определенных типов занимают в памяти какое-то место, разное в зависимости от типа. В Си нет четкого закрепления количества памяти за определенными типами. Это отдано на реализацию конкретного компилятора под конкретную платформу. Например, переменная типа int в одном компиляторе может занимать в памяти 16 бит, в другом — 32 бита, в третьем — 8 бит. Все определяет конкретный компилятор. Правда, все стремятся к универсализации, и в основном в большинстве компиляторов тип int, например, занимает 2 байта, а тип char — один.

Я в последнее время немного затупил, не мог вспомнить, сколько байт занимает тип double в AVR-GCC. Обычно при программировании контроллеров работаешь с целочисленными типами, типа int и char, а к типам с плавающей точкой прибегаешь не часто, в связи с их ресурсоемкостью.

Поэтому, на будущее, оставлю себе здесь памятку с указанием размеров занимаемой памяти типами данных для компилятора AVR-GCC и диапазон изменения переменных этого типа.

Типы данных в языке Си для компилятора AVR-GCC

ТипРазмер в
байтах (битах)
Интервал изменения
char1 (8)-128 .. 127
unsigned char1 (8)0 .. 255
signed char1 (8)-128 .. 127
int2 (16)-32768 .
. 32767
unsigned int2 (16)0 .. 65535
signed int2 (16)-32768 .. 32767
short int2 (16)-32768 .. 32767
unsigned short int2 (16)0 .. 65535
signed short int2 (16)-32768 .. 32767
long int4 (32)-2147483648 .. 2147483647
unsigned long int4 (32)0 .. 4294967295
signed long int4 (32)-2147483648 .. 2147483647
float4 (32)3.4Е-38 .. 3.4Е+38
double4 (32)3.4Е-38 .. 3.4Е+38
long double10 (80)3.4Е-4932 .. 3.4Е+4932

[stextbox id=»warning» caption=»Обратите внимание»]Реализация типа double в AVR-GCC отступает от стандарта. По стандарту double занимает 64 бита. В AVR-GCC переменная этого типа занимает 32 бита, и соответственно, она эквивалентна переменной с типом float![/stextbox]

В дополнение к этому, в библиотеках AVR-GCC введено несколько производных от стандартных типов. Они описаны в файле stdint.h. Сделано это, наверно, для улучшения наглядности и уменьшения текста программ (ускорения их написания :)). Вот табличка соответствия:

Производные типы от стандартных в языке Си для компилятора AVR-GCC

Производный типСтандартный тип
int8_tsigned char
uint8_tunsigned char
int16_tsigned int
uint16_tunsigned int
int32_tsigned long int
uint32_tunsigned long int
int64_tsigned long long int
uint64_tunsigned long long int

Тип Void

В языке Си есть еще один тип — тип void. Void используется для указания, что функция не возвращает ничего в качестве результата, или не принимает на вход никаких параметров. Этот тип не применяется для объявления переменных, соответственно он не занимает места в памяти.

диапазонов типов данных | Microsoft Узнайте

Обратная связь Редактировать

Твиттер LinkedIn Фейсбук Эл. адрес

  • Статья
  • 2 минуты на чтение

32-разрядные и 64-разрядные компиляторы Microsoft C++ распознают типы, указанные в таблице далее в этой статье.

  • целое число ( целое число без знака )

  • __int8 ( без знака __int8 )

  • __int16 ( без знака __int16 )

  • __int32 ( без знака __int32 )

  • __int64 ( без знака __int64 )

  • короткий ( короткий без знака )

  • длинный ( длинный без знака )

  • длинный длинный ( беззнаковый длинный длинный )

Если его имя начинается с двух знаков подчеркивания ( __ ), тип данных нестандартен.

Диапазоны, указанные в следующей таблице, включают включительно.

Название типа байт Другие названия Диапазон значений
внутр. 4 подписанный -2 147 483 648 до 2 147 483 647
целое число без знака 4 без знака от 0 до 4 294 967 295
__int8 1 символ от -128 до 127
без знака __int8 1 беззнаковый символ от 0 до 255
__int16 2 короткий , короткий целый , подписанный короткий целый от -32 768 до 32 767
без знака __int16 2 беззнаковое короткое , беззнаковое короткое целое от 0 до 65 535
__int32 4 подписанный , подписанный внутр. , внутр. -2 147 483 648 до 2 147 483 647
без знака __int32 4 без знака , целое число без знака от 0 до 4 294 967 295
__int64 8 длинный длинный , подписанный длинный длинный -9 223 372 036 854 775 808 до 9 223 372 036 854 775 807
без знака __int64 8 без знака длинный длинный от 0 до 18 446 744 073 709 551 615
логический 1 нет ложь или правда
символ 1 нет от -128 до 127 по умолчанию

от 0 до 255 при компиляции с использованием /J

знаковый символ 1 нет от -128 до 127
беззнаковый символ 1 нет от 0 до 255
короткий 2 короткое целое , подписанное короткое целое от -32 768 до 32 767
короткий без знака 2 короткое целое без знака от 0 до 65 535
длинный 4 длинное целое , подписанное длинное целое -2 147 483 648 до 2 147 483 647
длинный без знака 4 длинное целое без знака от 0 до 4 294 967 295
длинный длинный 8 нет (но эквивалентно __int64 ) -9 223 372 036 854 775 808 до 9 223 372 036 854 775 807
без знака длинный длинный 8 нет (но эквивалентно unsigned __int64 ) от 0 до 18 446 744 073 709 551 615
перечисление варьируется нет
поплавок 4 нет 3. 4E +/- 38 (7 цифр)
двойной 8 нет 1.7E +/- 308 (15 цифр)
длинный двойной аналогично двойной нет То же, что и двойной
wchar_t 2 __wchar_t от 0 до 65 535

В зависимости от того, как она используется, переменная __wchar_t обозначает либо широкосимвольный, либо многобайтовый тип символов. Используйте префикс L перед символьной или строковой константой для обозначения широкосимвольной константы.

signed и unsigned — это модификаторы, которые можно использовать с любым целочисленным типом, кроме bool . Обратите внимание, что char , signed char и unsigned char являются тремя различными типами для таких механизмов, как перегрузка и шаблоны.

Типы int и unsigned int имеют размер четыре байта. Однако переносимый код не должен зависеть от размера int , потому что стандарт языка допускает, что это зависит от реализации.

C/C++ в Visual Studio также поддерживает целочисленные типы с размером. Дополнительные сведения см. в разделе __int8, __int16, __int32, __int64 и целочисленные ограничения.

Дополнительные сведения об ограничениях размеров каждого типа см. в разделе Встроенные типы.

Диапазон перечисляемых типов зависит от контекста языка и указанных флагов компилятора. Дополнительные сведения см. в разделе Объявления и перечисления C.

См.

также

Ключевые слова
Встраиваемые модели

Обратная связь

Отправить и просмотреть отзыв для

Этот продукт Эта страница

Просмотреть все отзывы о странице

каков диапазон целого числа со знаком? — общий

скартик

#1

Каков диапазон подписанного целого, подписанного длинного целого, подписанного длинного длинного целого в gcc?
Также, если возможно, скажите мне спецификаторы формата?

пиюкр

#2

это может помочь:
http://msdn. microsoft.com/en-IN/library/s3f49ktz.aspx

2 лайка

28 марта 2013 г., 18:49

#3

signed char
8-битный тип данных signed char может содержать целые значения в диапазоне от -128 до 127.

 unsigned char
8-битный тип данных char без знака может содержать целые значения в диапазоне от 0 до 255.
    
уголь
В зависимости от вашей системы тип данных char определяется как имеющий тот же диапазон, что и тип данных signed char или unsigned char (однако это три разных типа). По соглашению вы должны использовать тип данных char специально для хранения символов ASCII (таких как `m'), включая управляющие последовательности (такие как `\n').
    
короткий внутренний
16-битный тип данных short int может содержать целые значения в диапазоне от −32 768 до 32 767. Вы также можете обращаться к этому типу данных как к короткому, короткому со знаком или короткому со знаком. 
    
беззнаковое короткое целое
16-битный тип данных unsigned short int может содержать целые значения в диапазоне от 0 до 65 535. Вы также можете ссылаться на этот тип данных как на unsigned short.
    
инт
32-битный тип данных int может содержать целые значения в диапазоне от -2 147 483 648 до 2 147 483 647. Вы также можете ссылаться на этот тип данных как на signt int или signed.
    
беззнаковое целое
32-битный тип данных unsigned int может содержать целые значения в диапазоне от 0 до 4,29.4 967 295. Вы также можете обращаться к этому типу данных просто как к беззнаковому.
    
длинный внутренний
32-битный тип данных long int может содержать целые значения в диапазоне от -2 147 483 648 до 2 147 483 647. (В зависимости от вашей системы этот тип данных может быть 64-битным, и в этом случае его диапазон идентичен диапазону данных типа long long int.) Вы также можете ссылаться на этот тип данных как long, signed long int или signed длинная.
    
беззнаковое длинное целое
32-битный тип данных unsigned long int может содержать целые значения в диапазоне от 0 до 4,29. 4 967 295. (В зависимости от вашей системы этот тип данных может быть 64-разрядным, и в этом случае его диапазон идентичен диапазону данных типа unsigned long long int.) Вы также можете называть этот тип данных unsigned long.
    
длинный длинный внутренний
64-битный тип данных long long int может содержать целые значения в диапазоне от -9 223 372 036 854 775 808 до 9 223 372 036 854 775 807. Вы также можете обращаться к этому типу данных как к long long, со знаком long long int или со знаком long long. Этот тип не является частью C89, но одновременно является частью C9.9 и расширение GNU C.
беззнаковое длинное длинное целое
64-битный тип данных unsigned long long int может содержать целые значения в диапазоне от 0 до 18 446 744 073 709 551 615. Вы также можете ссылаться на этот тип данных как на unsigned long long. Этот тип не является частью C89, но одновременно является частью C99 и расширением GNU C. 

4 лайка

пиюкр

Оставить комментарий

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *