Advertisement
RobertDeMilo

YB1.2 Преобразования целочисленных типов

Oct 27th, 2023
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.16 KB | None | 0 0
  1. #include <iostream>
  2. #include <vector>
  3. #include <limits>
  4.  
  5. using namespace std;
  6.  
  7. //void PrintAvg()
  8. //{
  9. //  vector<int> t = { -8,-7,3 };
  10. //  int sum = 0;
  11. //  for (int x : t)
  12. //  {
  13. //      sum += x;
  14. //  }
  15. //  int avg = (sum / t.size()) + vector<int>{};
  16. //  cout << avg << endl;
  17. //}
  18.  
  19. int main()
  20. {
  21.     /*cout << numeric_limits<int>::max() + 1 << " "
  22.            << numeric_limits<int>::min() - 1 << endl;*/
  23.  
  24.         //int x = 2'000'000;
  25.         //int y = 1'000'000;
  26.         //cout << (x + y) / 2 << endl;
  27.         //// Если промежуточные вычисления не умещаются в наш тип, то и с результатом может произойти что - то странное.
  28.         //// в процессе случиться переполнение
  29.  
  30.     /*int x = 2'000'000;
  31.     unsigned int y = x;
  32.     cout << x << " " << y << endl;*/
  33.  
  34.     int x = -1;
  35.     unsigned y = 1;
  36.     cout << (x < y) << endl;
  37.  
  38.     // Случилось приведение знаковой -1 к беззнаковой  
  39.     cout << (-1 < 1u) << endl;
  40.  
  41.  
  42.     // Правила выведения общего типа
  43.     //
  44.     // Перед сравнениями и арифметическими операциями числа приводятся к общему типу
  45.  
  46. //1// Все типы размера меньше int приводятся к int  int_8t приведется к типу int
  47. //2// Из двух типов выбирается больший по размеру
  48. //3// Если размер одинаковый, выбирается беззнаковый
  49.  
  50.     // Примеры приведения типов
  51.    
  52.     //                 Слева справа         общий тип
  53.     //                 int  / size_t        size_t
  54.     //                 int32_t + int8_t     int32_t(int) (тип, который имеет больший размер)
  55.     //                 int8_t * uint8_t     int (типы приводятся к типу int)
  56.     //                 int32_t < uint32_t   uint32_t  (знаковый тип приведется к беззнаковому)
  57.  
  58.     return 0;
  59. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement