PHP

Типы данных, сколько нужно озу

Сколько оперативной памяти должен занимать тип type, чтобы в
результате следующего фрагмента кода переменная c хранила –32767?
type a = 32767;
type b = 1;
type c = 1;
c = a + b;
Поясните пж, не совсем вникаю
Ни сколько!!!! всего 2 байта!!!!
если ты используешь тип short или че там которая 32767 все числа введеные в этом типе будут всего занимать 2 байта.
и если ты используешь тип
short c = 32767 + 2 будет с = -32768 и будет весить 2 байта.
просто когда превышаешь максимальное число типа данных он уже идет с самого начала или с конца - с -.

все что ты вводишь в типе short будет занимать всего 2 байта не больше.
Станислав Умаров
Станислав Умаров
1 633
Лучший ответ
Сергей Величко спасибо, доходчиво объяснили)
Имеется ввиду переполнение, когда после самого большого числа идёт самое маленькое отрицательное.
Rikki Maro
Rikki Maro
62 099
Такое задание не имеет конкретного решения.


В языке С++ не существует фундаментальных или стандартных библиотечных типов, которые давали бы результат -32767 при применении бинарного оператора + к объектам, хранящим значения 32767 и 1.


Если же речь идет о некоем нестандартном типе, то ответ может быть практически любым.


В языке С++ знаковое переполнение вызывает неопределенное поведение. То есть сумма двух положительных целых значений не может дать отрицательное значение, за исключением небольшой лазейки: если "переполнение" происходит не во время суммирования, а во время преобразования типов (от более широкого знакового целого к более узкому), то поведение не является неопределенным, а является определяемым реализацией.


Таким образом, в рамках некоторой реализации, если type - это некий знаковый тип, более узкий , чем int, в диапазон которого не входит значение 32768, но при этом 32768 входит в диапазон типа int, то операнды в выражении a + b будет подвергнуты integral promotions до типа int, выражение будет вычислено в рамках типа int (без переполнения) и затем преобразовано обратно к type. При обратном преобразовании произойдет "переполнение" с результатом, определяемым реализацией. Теоретически, в какой-то реализации может получиться и -32767, в какой-то - 12345, в какой-то - еще что-нибудь...


Но это все выходит далеко за рамки вопроса о том, сколько памяти должен занимать тип type.

Это и была фишка задания - узнать у человека читал ли он стандарт.