Например в какой ситуации переменная с типом данных int будет занимать больше чем 4 байта? Если это просто значение переменной с типом данных int, то оно всегда будет занимать не более 4 байт? А если больше, то это массив с множеством элементов целочисленного типа?
Могли бы вы объяснить то, что выше и по возможности как устроено, просто я не могу ещё понять того, что я должен в этой ситуации понять:)
Другие языки программирования и технологии
Что имеется ввиду под 4 байтами у типа данных int?(С++)
Для Александра Трифонова: " каждая переменная типа int будет занимать 4 байта (или 32 бита) , на 64 битной системе - она уже будет занимать 64 бита или 8 байт разумеется". Как? если в асме будет написано mov eax,100 то в 64битной это будет mov eax,100 (32-битная) ! а не mov rax,100 (64-битная) . Для этого нужно перекомпелировать под 64битную!
а по существу вопроса: если компилятор решил что int - 32 битная (4 байта по 8 бит=4*8=32бита) . то он будет весить 4 байта и баста! что бы изменить размер, надо менять тип или ставить перфиксы типа Short (короткий) , если бы конечно вы знали немного ассемблер, то было бы проще понимать, но что есть то есть, принимайте как данность! только на заметку берите - есть знаковые и беззнаковые...
а по существу вопроса: если компилятор решил что int - 32 битная (4 байта по 8 бит=4*8=32бита) . то он будет весить 4 байта и баста! что бы изменить размер, надо менять тип или ставить перфиксы типа Short (короткий) , если бы конечно вы знали немного ассемблер, то было бы проще понимать, но что есть то есть, принимайте как данность! только на заметку берите - есть знаковые и беззнаковые...
Ну, как говорится, есть теория, а есть практика.
С точки зрения теории, то здесь уже совершенно точно отметили, что стандарт С/С++ не определяет размеров типов, а только лишь правила, какие типы должны быть больше, а какие меньше. Конкретные размеры зависят от процессора (в основном) и от компилятора.
Практика же показывает, что в подавляющем большинстве случаев компилятор выбирает такой размер типа int, который по размеру равен размеру регистров процессора - т. к. именно такой код будет работать быстро. Именно поэтому int для 16-битных x86 - 2 байта, 32-битных x86 - 4 байта, для x64 - 8 байт. Исключения бывают, но крайне редки. Например, для 8-битных процессоров в некоторых случаях компилятору можно указать int - 16 бит.
С точки зрения теории, то здесь уже совершенно точно отметили, что стандарт С/С++ не определяет размеров типов, а только лишь правила, какие типы должны быть больше, а какие меньше. Конкретные размеры зависят от процессора (в основном) и от компилятора.
Практика же показывает, что в подавляющем большинстве случаев компилятор выбирает такой размер типа int, который по размеру равен размеру регистров процессора - т. к. именно такой код будет работать быстро. Именно поэтому int для 16-битных x86 - 2 байта, 32-битных x86 - 4 байта, для x64 - 8 байт. Исключения бывают, но крайне редки. Например, для 8-битных процессоров в некоторых случаях компилятору можно указать int - 16 бит.
тип int не 4 и не 8 байт :), все ответы неправильные. модификаторы типа short и long тоже не ничего не говорят о размере. Невероятно, но факт - C++ не стандартизирует размер целочисленных типов, на разных платформах, это могут быть совершенно разные значения sizeof(int), 16 бит (2 байта) , 32 бита (4 байта) - мы привыкли к этому, 64 бита - 8 байт, размер занимаемой памяти устанавливается не стандартом C++, а, компилятором, по-идее можно сделать и другие значения (типа дурацких 6 байтов) . Стандарт гарантирует только отношение : sizeof char <= sizeof short <= sizeof int <= sizeof long . На win64 msvc++ sizeof int = 4 байтам, т. е. нет, он не занимает 8 байт в виндовсе64, на некоторых linux 64 платформах - да, занимает 8 байт.
tbh: разницы никакой пока не начинается адресная арифметика.
tbh: разницы никакой пока не начинается адресная арифметика.
Вопрос не понятный конечно! Целый тип данных будет всегда равен 4 байтам. если это число не вписывается в 4 байта есть другие типы данных, но это дело за программистом какой тип брать
Имеется ввиду что каждая переменная типа int будет занимать 4 байта (или 32 бита) , на 64 битной системе - она уже будет занимать 64 бита или 8 байт разумеется.
если применить модификатор short int (или просто short), то целочисленная переменная будет занимать 2 байта.
если записать long int, то она будет занимать больше места, либо те же 4 байта, это зависит от компилятора.
Массив знает сколько места занимает одни его элемент, ибо он утроен с помощью указателей и оператора sizeof() так что это будет обычный целочисленный массив.
если применить модификатор short int (или просто short), то целочисленная переменная будет занимать 2 байта.
если записать long int, то она будет занимать больше места, либо те же 4 байта, это зависит от компилятора.
Массив знает сколько места занимает одни его элемент, ибо он утроен с помощью указателей и оператора sizeof() так что это будет обычный целочисленный массив.
Похожие вопросы
- C++ Про выбор типа данных. Int, char и т. д.
- [c++] не работает long int переменная объявленная как long int a; занимает всего 4 байта ((( Что может быть не так?
- C# почему когда создаю тип данных byte - он его автоматически преобразовывает в тип int?
- Программа должна определить тип введённых данных (int или float) Программа должна быть написана на С
- Вес может ли быть дробным числом? Какой тип данных использовать для этого int или float или double ?
- в файле"bigdump.php" нужно указать настройки для соединения с базой данных и кодировку. что имеется ввиду?
- Тип данных в паскале
- Есть ли в программировании основные (фундаментальные) типы данных, от которых берут начало другие типы?
- Задача 4. Комбинированный тип данных – записиСоставить программу, в которой разнотипные данные, обрабатываемые паралл
- Перечислите основные типы данных