Вычислить диапазон типов данных с помощью 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 и многому другому, см. Полный курс подготовки к собеседованию .



C++