какой тип переменной используется в коде int a 5

Как определить тип переменной

Как правильно определить тип переменной в C ++. Я попытался это, чтобы определить тип переменной:

И вместо ожидаемого вывода int, он дает вам:

Я очень запутался в том, почему это происходит. Это почему-то дает вам только первую букву того типа, который вы объявляете переменной. Int не единственный … также это:

Есть ли простой способ обойти это? Любая помощь будет оценена!

Решение

Есть две проблемы с вашим кодом,

во-первых typeid(..).name() возвращает строку, определенную реализацией, это может быть любая допустимая строка, она может вернуть «» для каждого типа он может даже возвращать разные значения для каждого выполнения программы (хотя я считаю, что значение не может измениться во время выполнения). GCC (и Clang?) Возвращают нечитаемые имена, тогда как Visual C ++ возвращает разумные (в этом случае int )

К сожалению, не существует стандартного способа получения имени типа таким образом, чтобы он был читабельным или правильным синтаксисом C ++.
(увидеть Отмена результата std :: type_info :: name если вы хотите способ, который работает в GCC)

Другие решения

Я имею в виду, даже если это не понятно. Например, если int равно 32432423423403095590353095309530953, то всегда будет одинаковым. Так что я могу легко установить функцию, которая будет возвращать тип переменной …

Результаты, которые вы получаете, уже выполняют это. Возможно, это поможет объяснить, как именно используемая реализация C ++ получает строки, которые вы видите.

G ++ реализует typeid(. ).name() такой, что он возвращает искаженное имя типа ABI. Это особый способ представления типов, который используется в скомпилированных объектных файлах и библиотеках. Если вы скомпилируете код C ++ в сборку, вы увидите «символы», которые определяют, к какой функции или данным относится полученный код сборки. Например, возьмите функцию:

Вы также можете раскладывать символы используя инструмент C ++ Filter. Этот инструмент просматривает любой передаваемый вами текст в поисках вещей, соответствующих синтаксису искажения, и преобразует их во что-то более похожее на то, как эти типы названы в исходном коде C ++.

G ++ реализует Itanium C ++ ABI схема искажения. Он используется большинством компиляторов платформы Unix.

Итак, вернемся к вашему коду, угадайте, как тип ‘int’ представлен в этих символах.

Itanium ABI определяет дополнительная функция для разборки. Вот пример, использующий это.

В Visual C ++ вы должны вызывать UnDecorateSymbolName, но, по-видимому, называются целые int там

Источник

Тест с ответами на тему программирование на языке C#

А1. Какой тип переменной используется в коде: int a = 5;

Знаковое 8-бит целое

Знаковое 64-бит целое

Знаковое 32-бит целое (+)

А2. Что делает оператор «%»

Возвращает процент от суммы

Возвращает остаток от деления (+)

Возвращает тригонометрическую функцию

Ни чего из выше перечисленного.

А3. Что сделает программа выполнив следующий код: Console.WriteLine(«Hello, World!»);

Напишет на новой строчке Hello, World! (+)

Напишет Hello, World!

Удалит все значения с Hello, World!

Вырежет слово Hello, World! из всего текста

А4. Как сделать инкрементацию числа

А5. Как сделать декрементация числа

А6. Как найти квадратный корень из числа x

А7. Обозначения оператора «НЕ»

A8. Обозначение оператора «ИЛИ»

A9. Обозначение оператора «И»

Все выше перечисленные.

А10. Чему будет равен с, если int a = 10; int b = 4; int c = a % b;

А11. Чему будет равен с, если int a = 10; int b = 4; bool c = (a == 10 && b == 4);

А11. Чему будет равен с, если int a = 0; int c = a—;

А12. Чему будет равен с, если int a = 0; int c = —a;

A15. Чему равен d, если int a = 0; int b = a++; int c = 0; int d = a + b + c + 3;

А16. Для чего нужны условные операторы

Чтобы устанавливать условия пользователю

Для ветвления программы (+)

Для оптимизации программы

А17. Что вернет функция Termin после выполения. Код:

A18. Как называется оператор «?:»

А19. Что такое массив

Набор однотипных данных, которые располагаются в памяти последовательно друг за другом (+)

Набор текстовых значений в формате Unicode, которые расположены в случайном порядке.

Набор данных типа int (32-бит целое)

Одномерные и многомерные (+)

Резиновые и статичные

A20. Что такое цикл и для чего они нужны

Циклы нужны для многократного запуска программы

Циклы нужны для многократного выполнения кода. (+)

Циклы нужны для многократного размещения данных.

Циклы нужны чтобы выполнить код без ошибок.

A21. Какие бывают циклы?

Большие и маленькие

Цикл, Форич, Двойной цикл, Многократный

for, while, do-while, foreach (+)

ref, out, static, root

Переменная типа string

Переменная которая может быть изменена в любое время.

Переменная значение которой нельзя изменить. (+)

Устраивает войну между программами

Обозначает что переменная без явного типа данных (+)

Обозначает что переменная имеет явный тип данных

Источник

1. Какой тип переменной используется в коде: int a = 5;

Знаковое 8-бит целое

Знаковое 64-бит целое

Знаковое 32-бит целое

2. Что делает оператор «%»

Возвращает процент от суммы

Возвращает остаток от деления

Возвращает тригонометрическую функцию

Ни чего из выше перечисленного.

3. Что сделает программа выполнив следующий код: Console.WriteLine(«Hello, World!»);

Напишет на новой строчке Hello, World!

Напишет Hello, World!

Удалит все значения с Hello, World!

Вырежет слово Hello, World! из всего текста

4. Как сделать инкрементацию числа

5. Как сделать декрементация числа

6. Как найти квадратный корень из числа x

7. Обозначения оператора «НЕ»

8. Обозначение оператора «ИЛИ»

9. Обозначение оператора «И»

Все выше перечисленные.

10. Чему будет равен с, если int a = 10; int b = 4; int c = a % b;

11. Чему будет равен с, если int a = 10; int b = 4; bool c = (a == 10 && b == 4);

12. Чему будет равен с, если int a = 0; int c = a—;

13. Чему будет равен с, если int a = 0; int c = —a;

14. Чему равен d, если int a = 0; int b = a++; int c = 0; int d = a + b + c + 3;

15. Для чего нужны условные операторы

Чтобы устанавливать условия пользователю

Для ветвления программы

Для оптимизации программы

16. Что вернет функция Termin после выполения. Код :

18. Как называется оператор «?:»

19. Что такое массив

Набор однотипных данных, которые располагаются в памяти последовательно друг за другом

Набор текстовых значений в формате Unicode, которые расположены в случайном порядке.

Набор данных типа int (32-бит целое)

Одномерные и многомерные

Резиновые и статичные

21. Что такое цикл и для чего они нужны

Циклы нужны для многократного запуска программы

Циклы нужны для многократного выполнения кода.

Циклы нужны для многократного размещения данных.

Циклы нужны чтобы выполнить код без ошибок.

22. Какие бывают циклы?

Большие и маленькие

for, while, do-while, foreach

ref, out, static, root

Переменная типа string

Переменная которая может быть изменена в любое время.

Переменная значение которой нельзя изменить.

Устраивает войну между программами

Обозначает что переменная без явного типа данных (+)

Обозначает что переменная имеет явный тип данных

Такого слова нету в C#

Это структура данных

Именованная область памяти

Область динамической памяти

любой тип данных, определяемый пользователем

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

структура, для которой в программе имеются функции работы с нею

28. Членами класса могут быть

— как переменные, так и функции, могут быть объявлены как private и как public

— только переменные, объявленные как private

— только функции, объявленные как private

— только переменные и функции, объявленные как private

— только переменные и функции, объявленные как public

29. Что называется конструктором?

метод, имя которого совпадает с именем класса и который вызывается автоматически при создании объекта класса

метод, имя которого совпадает с именем класса и который вызывается автоматически при объявлении класса (до создания объекта класса)

метод, имя которого необязательно совпадает с именем класса и который вызывается при создании объекта класса

метод, имя которого совпадает с именем класса и который необходимо явно вызывать из головной программы при объявлении объекта класса

— переменная, содержащая указатель на класс

— класс, который содержит в себе данные и методы их обработки

31. Отметьте правильные утверждения

— конструкторы класса не наследуются

— конструкторов класса может быть несколько, их синтаксис определяется программистом

— конструкторов класса может быть несколько, но их синтаксис должен подчиняться правилам перегрузки функций

— конструктор возвращает указатель на объект

— конструктор не возвращает значение

32. Что называется деструктором?

— метод, который уничтожает объект

— метод, который удаляет объект

— метод, который освобождает память, занимаемую объектом

— системная функция, которая освобождает память, занимаемую объектом

33. Выберите правильные утверждения

— у конструктора могут быть параметры

— конструктор наследуется, но должен быть перегружен

— конструктор должен явно вызываться всегда перед объявлением объекта

— конструктор вызывается автоматически при объявлении объекта

— объявление каждого класса должно содержать свой конструктор

— если конструктор не создан, компилятор создаст его автоматически

34. Выберите правильные утверждения

— деструктор не наследуется

— деструктор наследуется, но должен быть перегружен

35. Что называется наследованием?

— это механизм, посредством которого производный класс получает элементы родительского и может дополнять либо изменять их свойства и методы

— это механизм переопределения методов базового класса

— это механизм, посредством которого производный класс получает все поля базового класса

— это механизм, посредством которого производный класс получает элементы родительского, может их дополнить, но не может переопределить

36. Выберите правильное объявление производного класса

— class MoreDetails :: Details ;

class MoreDetails: public class Details;

class MoreDetails: public Details;

class MoreDetails: class(Details);

37. Выберите правильные утверждения:

38. Возможность и способ обращения производного класса к элементам базового определяется

— только ключом доступа protected в заголовке объявления производного класса

39. Выберите правильные соответствия между спецификатором базового класса, ключом доступа в объявлении производного класса и правами доступа прозводного класса к элементам базового

ключ доступа – любой; в базовом классе: public ; права доступа в производном классе – такие же, как ключ доступа

40. Выберите правильные утверждения:

— одна функция может быть дружественной нескольким классам

— дружественная функция не может быть обычной функцией, а только методом другого класса

— дружественная функция объявляется внутри класса, к элементам которого ей нужен доступ

— дружественная функция не может быть методом другого класса

какой тип переменной используется в коде int a 5. Смотреть фото какой тип переменной используется в коде int a 5. Смотреть картинку какой тип переменной используется в коде int a 5. Картинка про какой тип переменной используется в коде int a 5. Фото какой тип переменной используется в коде int a 5

Курс повышения квалификации

Дистанционное обучение как современный формат преподавания

какой тип переменной используется в коде int a 5. Смотреть фото какой тип переменной используется в коде int a 5. Смотреть картинку какой тип переменной используется в коде int a 5. Картинка про какой тип переменной используется в коде int a 5. Фото какой тип переменной используется в коде int a 5

Курс профессиональной переподготовки

Информатика: теория и методика преподавания в образовательной организации

какой тип переменной используется в коде int a 5. Смотреть фото какой тип переменной используется в коде int a 5. Смотреть картинку какой тип переменной используется в коде int a 5. Картинка про какой тип переменной используется в коде int a 5. Фото какой тип переменной используется в коде int a 5

Курс профессиональной переподготовки

Математика и информатика: теория и методика преподавания в образовательной организации

Онлайн-конференция для учителей, репетиторов и родителей

Формирование математических способностей у детей с разными образовательными потребностями с помощью ментальной арифметики и других современных методик

какой тип переменной используется в коде int a 5. Смотреть фото какой тип переменной используется в коде int a 5. Смотреть картинку какой тип переменной используется в коде int a 5. Картинка про какой тип переменной используется в коде int a 5. Фото какой тип переменной используется в коде int a 5

Номер материала: ДБ-1036758

Международная дистанционная олимпиада Осень 2021

Не нашли то что искали?

Вам будут интересны эти курсы:

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

Авторизуйтесь, чтобы задавать вопросы.

какой тип переменной используется в коде int a 5. Смотреть фото какой тип переменной используется в коде int a 5. Смотреть картинку какой тип переменной используется в коде int a 5. Картинка про какой тип переменной используется в коде int a 5. Фото какой тип переменной используется в коде int a 5

В Москве подписан Меморандум о развитии и поддержке классного руководства

Время чтения: 1 минута

какой тип переменной используется в коде int a 5. Смотреть фото какой тип переменной используется в коде int a 5. Смотреть картинку какой тип переменной используется в коде int a 5. Картинка про какой тип переменной используется в коде int a 5. Фото какой тип переменной используется в коде int a 5

Рособрнадзор оставил за регионами решение о дополнительных школьных каникулах

Время чтения: 1 минута

какой тип переменной используется в коде int a 5. Смотреть фото какой тип переменной используется в коде int a 5. Смотреть картинку какой тип переменной используется в коде int a 5. Картинка про какой тип переменной используется в коде int a 5. Фото какой тип переменной используется в коде int a 5

В России запустят телепроект о российских вузах

Время чтения: 1 минута

какой тип переменной используется в коде int a 5. Смотреть фото какой тип переменной используется в коде int a 5. Смотреть картинку какой тип переменной используется в коде int a 5. Картинка про какой тип переменной используется в коде int a 5. Фото какой тип переменной используется в коде int a 5

Роспотребнадзору поручено актуализировать требования к школьному меню

Время чтения: 1 минута

какой тип переменной используется в коде int a 5. Смотреть фото какой тип переменной используется в коде int a 5. Смотреть картинку какой тип переменной используется в коде int a 5. Картинка про какой тип переменной используется в коде int a 5. Фото какой тип переменной используется в коде int a 5

Более 600 школ в регионах России закрыто из-за коронавируса

Время чтения: 1 минута

какой тип переменной используется в коде int a 5. Смотреть фото какой тип переменной используется в коде int a 5. Смотреть картинку какой тип переменной используется в коде int a 5. Картинка про какой тип переменной используется в коде int a 5. Фото какой тип переменной используется в коде int a 5

Рособрнадзор проведет исследование качества образования в школах

Время чтения: 2 минуты

Подарочные сертификаты

Ответственность за разрешение любых спорных моментов, касающихся самих материалов и их содержания, берут на себя пользователи, разместившие материал на сайте. Однако администрация сайта готова оказать всяческую поддержку в решении любых вопросов, связанных с работой и содержанием сайта. Если Вы заметили, что на данном сайте незаконно используются материалы, сообщите об этом администрации сайта через форму обратной связи.

Все материалы, размещенные на сайте, созданы авторами сайта либо размещены пользователями сайта и представлены на сайте исключительно для ознакомления. Авторские права на материалы принадлежат их законным авторам. Частичное или полное копирование материалов сайта без письменного разрешения администрации сайта запрещено! Мнение администрации может не совпадать с точкой зрения авторов.

Источник

Урок №31. Целочисленные типы данных: short, int и long

Обновл. 11 Сен 2021 |

На этом уроке мы рассмотрим целочисленные типы данных в языке С++, их диапазоны значений, операцию деления, а также переполнение (что это такое и примеры).

Целочисленные типы данных

Тип Минимальный размер
Символьный тип данныхchar1 байт
Целочисленный тип данныхshort2 байта
int2 байта (но чаще всего 4 байта)
long4 байта
long long8 байт

Примечание: Тип char — это особый случай: он является как целочисленным, так и символьным типом данных. Об этом детально мы поговорим на одном из следующих уроков.

Основным различием между целочисленными типами, перечисленными выше, является их размер, чем он больше, тем больше значений сможет хранить переменная этого типа.

Объявление целочисленных переменных

Объявление происходит следующим образом:

Диапазоны значений и знак целочисленных типов данных

Как вы уже знаете из предыдущего урока, переменная с n-ным количеством бит может хранить 2 n возможных значений. Но что это за значения? Это значения, которые находятся в диапазоне. Диапазон — это значения от и до, которые может хранить определенный тип данных. Диапазон целочисленной переменной определяется двумя факторами: её размером (измеряется в битах) и её знаком (который может быть signed или unsigned).

Целочисленный тип signed (со знаком) означает, что переменная может содержать как положительные, так и отрицательные числа. Чтобы объявить переменную как signed, используйте ключевое слово signed :

По умолчанию, ключевое слово signed пишется перед типом данных.

В некоторых случаях мы можем заранее знать, что отрицательные числа в программе использоваться не будут. Это очень часто встречается при использовании переменных для хранения количества или размера чего-либо (например, ваш рост или вес не может быть отрицательным).

Целочисленный тип unsigned (без знака) может содержать только положительные числа. Чтобы объявить переменную как unsigned, используйте ключевое слово unsigned :

1-байтовая целочисленная переменная без знака (unsigned) имеет диапазон значений от 0 до 255.

Обратите внимание, объявление переменной как unsigned означает, что она не сможет содержать отрицательные числа (только положительные).

Теперь, когда вы поняли разницу между signed и unsigned, давайте рассмотрим диапазоны значений разных типов данных:

Для нематематиков: Используем таблицу 🙂

Начинающие программисты иногда путаются между signed и unsigned переменными. Но есть простой способ запомнить их различия. Чем отличается отрицательное число от положительного? Правильно! Минусом спереди. Если минуса нет, значит число — положительное. Следовательно, целочисленный тип со знаком (signed) означает, что минус может присутствовать, т.е. числа могут быть как положительными, так и отрицательными. Целочисленный тип без знака (unsigned) означает, что минус спереди отсутствует, т.е. числа могут быть только положительными.

Что используется по умолчанию: signed или unsigned?

Так что же произойдет, если мы объявим переменную без указания signed или unsigned?

Тип По умолчанию
Символьный тип данныхcharsigned или unsigned (в большинстве случаев signed)
Целочисленный тип данныхshortsigned
intsigned
longsigned
long longsigned

Все целочисленные типы данных, кроме char, являются signed по умолчанию. Тип char может быть как signed, так и unsigned (но, обычно, signed).

В большинстве случаев ключевое слово signed не пишется (оно и так используется по умолчанию).

Программисты, как правило, избегают использования целочисленных типов unsigned, если в этом нет особой надобности, так как с переменными unsigned ошибок, по статистике, возникает больше, нежели с переменными signed.

Правило: Используйте целочисленные типы signed, вместо unsigned.

Переполнение

Вопрос: «Что произойдет, если мы попытаемся использовать значение, которое находится вне диапазона значений определенного типа данных?». Ответ: «Переполнение».

Переполнение (англ. «overflow») случается при потере бит из-за того, что переменной не было выделено достаточно памяти для их хранения.

На уроке №28 мы говорили о том, что данные хранятся в бинарном (двоичном) формате и каждый бит может иметь только 2 возможных значения ( 0 или 1 ). Вот как выглядит диапазон чисел от 0 до 15 в десятичной и двоичной системах:

Десятичная система Двоичная система
00
11
210
311
4100
5101
6110
7111
81000
91001
101010
111011
121100
131101
141110
151111

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

Примеры переполнения

Рассмотрим переменную unsigned, которая состоит из 4 бит. Любое из двоичных чисел, перечисленных в таблице выше, поместится внутри этой переменной.

«Но что произойдет, если мы попытаемся присвоить значение, которое занимает больше 4 бит?». Правильно! Переполнение. Наша переменная будет хранить только 4 наименее значимых (те, что справа) бита, все остальные — потеряются.

Например, если мы попытаемся поместить число 21 в нашу 4-битную переменную:

Десятичная система Двоичная система
2110101

Число 21 занимает 5 бит (10101). 4 бита справа (0101) поместятся в переменную, а крайний левый бит (1) просто потеряется. Т.е. наша переменная будет содержать 0101, что равно 101 (нуль спереди не считается), а это уже число 5, а не 21.

Теперь рассмотрим пример в коде (тип short занимает 16 бит):

Результат выполнения программы:

x was: 65535
x is now: 0

Что случилось? Произошло переполнение, так как мы попытались присвоить переменной x значение больше, чем она способна в себе хранить.

Для тех, кто хочет знать больше: Число 65 535 в двоичной системе счисления представлено как 1111 1111 1111 1111. 65 535 — это наибольшее число, которое может хранить 2-байтовая (16 бит) целочисленная переменная без знака, так как это число использует все 16 бит. Когда мы добавляем 1, то получаем число 65 536. Число 65 536 представлено в двоичной системе как 1 0000 0000 0000 0000, и занимает 17 бит! Следовательно, самый главный бит (которым является 1) теряется, а все 16 бит справа — остаются. Комбинация 0000 0000 0000 0000 соответствует десятичному 0, что и является нашим результатом.

Аналогичным образом, мы получим переполнение, использовав число меньше минимального из диапазона допустимых значений:

Результат выполнения программы:

x was: 0
x is now: 65535

Переполнение приводит к потере информации, а это никогда не приветствуется. Если есть хоть малейшее подозрение или предположение, что значением переменной может быть число, которое находится вне диапазона допустимых значений используемого типа данных — используйте тип данных побольше!

Правило: Никогда не допускайте возникновения переполнения в ваших программах!

Деление целочисленных переменных

В языке C++ при делении двух целых чисел, где результатом является другое целое число, всё довольно предсказуемо:

Но что произойдет, если в результате деления двух целых чисел мы получим дробное число? Например:

В языке C++ при делении целых чисел результатом всегда будет другое целое число. А такие числа не могут иметь дробь (она просто отбрасывается, не округляется!).

Правило: Будьте осторожны при делении целых чисел, так как любая дробная часть всегда отбрасывается.

Поделиться в социальных сетях:

Урок №30. Размер типов данных

Комментариев: 23

Всем доброго времени суток. Появился такой вопрос: для объявления без знакового числа, для плюсов, обязательно писать unsigned int X, есть ли сокращенная форма по типу uint X?

Может проще для запоминания было сказать, что тип signed (со знаком) использует 1 (старший бит в байте для записи этого самого знака и для самого числа остается 7 бит (это в случае 1-го байта, для 2- байт 15 и т.д.) и в 7 битах можно записать число не больше чем 128.
К примеру 10000000 это отрицательный ноль. 🙂 Но такого не бывает.

Для того, чтоб числа имели дробь при делении целых чисел можно приписать ноль после точкой. Например : 8.0/5.0 = 1.6

Только это уже совсем другая история)

Достаточно поставить точку одному из выражений. Например: 8. / 5 или 8 / 5.

Остальное компилятор сам подставит)

Вообще, с «железным» правилом «Никогда не допускайте возникновения переполнения в ваших программах!» — сильно погорячились. Потому что очень часто переполнение как раз помогает создать более простой и быстрый код.

Например, нужно много раз увеличивать переменную на 1 и циклически прокручивать все значения от 0 до 255. Писать условие «если равно 255, то присвоить 0» — совсем не нужно, это произойдёт само при прибавлении 1 к 255, если используется 1-байтовая беззнаковая.

Другой очень частый пример: вычисление разности двух значений миллисекундного таймера, чтобы замерить период времени. 4-байтовая переменная с таким таймером переполняется каждые 49 суток. Если система работает непрерывно, то такое может случаться. Когда считаем разность (новое значение таймера минус старое) — возможен случай, когда новое значение уже переполнилось (снова пошло с нуля), а старое ещё нет (огромное число). Но когда вычисляется разность, тут снова произойдёт переполнение (из-за того, что получилось отрицательное значение), и эти два переполнения оказывают взаимно компенсирующее действие, как будто их не было вообще. И разность всё равно будет верной. И не надо городить никаких хитрых алгоритмов.

Скорее всего это какой-то очень древний подход. Никогда не слышал подобного в универе.

Потому что это относится к числам с плавающей точкой. У них отдельный бит хранит знак. В целочисленных типах такого нигде (или почти нигде) нет.

unsigned используется для экономии памяти, это же очевидно. Если знак действительно не нужен за счет дополнительно освобожденного бита, можно увеличить диапазон значений в 2 раза, что в некоторых случаях позволит использовать более «экономные» типы данных.

Ну так нужно указывать другой тип переменной(не целое число). Тогда будет дробь.

Забавная история, почему этот урок так важен =)
В игре Civilization есть баг с механикой агрессии и миролюбия. Суть такова, что агрессивность цивилизации измерялась по шкале от 1 до 10. Девятки и десятки были у всяких Чингисханов, Монтесум и Сталиных, а у духовного пацифиста Махатмы Ганди была единичка. И ещё были модификаторы — строй «республика» уменьшает агрессивность на 1, «демократия» — на 2. Соответственно, сразу же, как только индусы открывали Демократию, у Ганди становилась агрессивность −1.

А теперь внимание. Эта переменная была однобайтная и строго неотрицательная(unsigned), от 0 до 255. Соответственно, агрессивность Махатмы Ганди становилась равна 255 из 10. Поэтому, построив у себя демократию, Ганди двигался рассудком, клепал ядрёные бомбы и умножал всех на ноль.

Действительно хороший пример 🙂 С unsigned нужно быть аккуратным.

Источник

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

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