Тип short предназначен для представления целых чисел.
- Тип short обычно занимает 16 бит (2 байта). Размер можно узнать командой.
std::cout << sizeof(short); //2 (байта)
Диапазон представляемых значений типом short и unsigned short:
- short от -32 768 до 32 767
#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
}
#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
}