Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗cpPmCvSU 61 of 390 menu
◀ ▶

Знак и беззнаковые типы в C++

Число типа int можно записать в unsigned int. Беззнаковый тип хранит только ноль и положительные числа. Отрицательных значений у него нет.

Возьмем положительное 100 и запишем его в беззнаковый тип. Число входит в диапазон и остается собой:

int num1 = 100; unsigned int num2 = num1; std::cout << num2 << "\n"; // выведет 100

Теперь запишем отрицательное -1. Минус в беззнаковую ячейку не кладется. Биты идут по кругу, и на экране верхняя граница unsigned int:

int num1 = -1; unsigned int num2 = num1; std::cout << num2 << "\n"; // выведет 4294967295

То же случается в одном действии, если второе число беззнаковое. Сложим -2 типа int и 1 типа unsigned int. Перед сложением минус становится огромным положительным: -2 читается как 4294967294, плюс единица дает 4294967295. Обычный счет дал бы -1. Если минус нужен, число в беззнаковый тип не кладут и с беззнаковым его не складывают:

int num1 = -2; unsigned int num2 = 1; std::cout << num1 + num2 << "\n"; // выведет 4294967295

Дана переменная:

int num = 40;

Запишите ее в unsigned int и выведите новую переменную.

Дана переменная:

int num = -1;

Запишите ее в unsigned int и выведите новую переменную.

Даны две переменные:

int num1 = -2; unsigned int num2 = 1;

Найдите сумму этих переменных и выведите ее.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить