Вычислить диапазон типов данных с помощью C ++
Опубликовано: 31 Декабря, 2021
Программа на C ++ для печати диапазона данных типа int, char, short.
Подписанные типы данных
МЕТОД 1.) вычислить общее количество бит, умножив sizeof на 8 (скажем, n) 2.) Вычислите -2 ^ (n-1) для минимального диапазона 3.) Вычислите (2 ^ (n-1)) - 1 для максимального диапазона
// CPP program to calculate // range of signed data type #include <bits/stdc++.h> #define SIZE(x) sizeof(x) * 8 using namespace std; // function to calculate range of //unsigned data type void printSignedRange( int count) { int min = pow (2, count - 1); int max = pow (2, count - 1) - 1; printf ( "%d to %d" , min * (-1), max); } // DRIVER program int main() { cout << "signed char: " ; printSignedRange(SIZE( char )); cout << "
signed int: " ; printSignedRange(SIZE( int )); cout << "
signed short int: " ; printSignedRange(SIZE( short int )); return 0; } |
Выход:
знаковый символ: от -128 до 127 подписанный int: от -2147483648 до 2147483647 подписанный короткий int: от -32768 до 32767
Беззнаковые типы данных
МЕТОД 1.) Найдите количество бит, умножив результат sizeof на 8, скажем, n 2.) минимальный диапазон всегда равен нулю для беззнакового типа данных 3.) для максимального диапазона рассчитайте 2 ^ n-1
// CPP program to calculate range // of given unsigned data type #include <bits/stdc++.h> #define SIZE(x) sizeof(x) * 8 using namespace std; // function to calculate range // of given unsigned data type void UnsignedRange( int count) { // calculate 2^number of bits unsigned int max = pow (2, count) - 1; cout << "0 to " << max; } // DRIVER program int main() { cout << "unsigned char: " ; UnsignedRange(SIZE(unsigned char )); cout << "
unsigned int: " ; UnsignedRange(SIZE(unsigned int )); cout << "
unsigned short int: " ; UnsignedRange(SIZE(unsigned short )); return 0; } |
Выход:
беззнаковый символ: от 0 до 255 беззнаковое целое: от 0 до 4294967295 беззнаковое короткое целое: от 0 до 65535
Хотите учиться на лучших видео и практических задачах, ознакомьтесь с базовым курсом C ++ для базового и продвинутого уровня C ++ и курсом C ++ STL для языка и STL. Чтобы завершить подготовку от изучения языка к DS Algo и многому другому, см. Полный курс подготовки к собеседованию .