short С++ целочисленный тип данных

Тип short предназначен для представления целых чисел.

- Тип short обычно занимает 16 бит (2 байта). Размер можно узнать командой.
- Может использоваться в коде как short, так и short int, обе записи идентичны.

std::cout << sizeof(short);   //2 (байта)

Диапазон представляемых значений типом short и unsigned short:

- short от -32 768 до 32 767
- unsigned short от 0 до 65 535

#include <iostream> // cout
#include <limits>   // numeric_limits
using namespace std;
int main(){
    cout << numeric_limits<short>::min() << endl; //-32768   Минимальное число short
    cout << numeric_limits<short>::max() << endl; //32767   Максимальное число short
    cout << numeric_limits<unsigned short>::min() << endl; //0   Минимальное число unsigned short
    cout << numeric_limits<unsigned short>::max() << endl; //65535   Максимальное число unsigned short
}

Преобразования short


#include <iostream> // stoi(), stoul(), to_string()
#include <cstring>  // strcpy()
int main(){
    short sh1 = std::stoi("15");            // const char* to short
    unsigned short ush1 = std::stoul("15"); // const char* to unsigned short

    const char* cpi = "23";                 // const char*
    int sh2 = std::stoi(cpi);               // const char* to short
    unsigned short ush2 = std::stoul(cpi);  // const char* to unsigned short

    std::string str = "10";                 // std::string
    int sh3 = std::stoi(str);               // std::string to short
    unsigned int ush3 = std::stoul(str);    // std::string to unsigned short

    std::string s1 = std::to_string(sh3);   // short to std::string

    const char* cch = std::to_string(sh3).c_str(); // short to const char*

    // Корректно преобразовывать const char* в char* можно только если полученная строка не будет меняться (будет readonly)
    char* ch = (char*)std::to_string(sh3).c_str(); // short to char* C-style
    ch = const_cast<char*>(std::to_string(sh3).c_str()); // short to char* C++ style

    // Преобразование float в char* который можно изменять
    std::string st = std::to_string(sh3);   // short to std::string
    char* buf = new char[st.length() + 1]; // Создаем буфер достаточной длины
    std::strcpy(buf, st.c_str());          // Преобразовываем std::string в const char* и копируем в char*

    char c = sh3;        // short to char
    int i = sh3;         // short to int
    long l = sh3;        // short to long
    long long ll = sh3;  // short to long long
    float f = sh3;       // short to float
    double d = sh3;      // short to double

    int sh = c;          // char to short
    sh = i;              // int to short
    sh = l;              // long to short
    sh = ll;             // long long to short
    sh = f;              // float to short
    sh = d;              // double to short
}
2023-10-22



Понравилась страница?
Добавить в закладки
Или поделиться!

Связанные темы

char символьный тип данных в С++ длиной 1 байт
char16_t символьный беззнаковый тип данных длиной 16 бит в С++11
char32_t символьный беззнаковый тип данных длиной 32 бит в С++11
char8_t символьный тип данных в С++20
Типы данных C++
double - тип данных для представления вещественных чисел двойной точности
enum перечисление С++
float C++ представление вещественных данных с одинарной точностью
int C++ целочисленный тип данных
Целочисленные типы С++ long и long long
short С++ целочисленный тип данных
signed C++ модификатор знакового целочисленного типа
typedef C++ создание псевдонимов для типов данных
typeid C++ определение типа данных
union C++ объединение переменных разных типов в общей памяти
unsigned С++ беззнаковые числа
void C++ для функций не возвращающих значений или задания пустого указателя
wchar_t С++ расширенный набор символов и строк