<?xml version='1.0' encoding="utf-8"?>
      <rss version='2.0'>
      <channel>
      <title>Форум на Исходниках.RU</title>
      <link>https://forum.sources.ru</link>
      <description>Форум на Исходниках.RU</description>
      <generator>Форум на Исходниках.RU</generator>
  	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=426799&amp;view=findpost&amp;p=3865517</guid>
        <pubDate>Wed, 11 May 2022 04:25:55 +0000</pubDate>
        <title>Какой самый большой целочисленный тип данных в Qt,</title>
        <link>https://forum.sources.ru/index.php?showtopic=426799&amp;view=findpost&amp;p=3865517</link>
        <description><![CDATA[mkudritsky: Не удержусь и дам свои комментарии по 64bit типу unsigned long long int.<br>Чтобы почувствовать величину такого максимального целого числа, давайте оценим - за какое время современный процессор сможет обнулить весь такой массив данных.<br>Пусть присваивание нуля на современном компьютере занимает 10^(-10) сек.<br>Тогда массиву чисел от 0 до 2^64 нули можно присвоить за 2^64/(10^10*3600*24)=21350 суток или за 51 год&#33;<br><br>Это все говорит о том, насколько велико &quot;шахматное число&quot;.<br>Кстати, физический объем памяти 2^64 бит не выглядит совсем уж фантастичным.<br>Оценим: 2^64=1.8*10^19. А число Авогадро (число молекул в 1 моле вещества) равно 6*10^23.<br>То есть модуль памяти объемом 2^64 байт будет примерно размером с кремниевый кирпич (1 моль кремния)&#33;<br>И для хранения 1 байта будет выделено примерно 10000 атомов кремния (число Авогадро разделить на 2^64).<br><br>Выводы на правах ИМХО:<br>1. Самым слабым звеном в современных ПК давно уже стало быстродействие (тактовая частота процессора).<br>Тактовая частота процессора ограничена размерном атома кремния (примерно 0.1 нанометра или 1 Ангстрем) и равна 3.5-5.0 ГГц.<br>Она же и обеспечивает присваивание целому числу нуля за 10^(-10) сек.<br>А вот модули памяти можно нарастить и до 128Гб, и до 256Гб и до 1Тб... Только вот скорости процессора не хватает, чтобы с ними эффективно работать.<br><br>2. Зачем же нужен такой тип данных, как long long int, если работать можно только с милимизерными островками этих данных?<br>Скажу за себя. Я длинное целое использую сейчас в двух случаях:<br>А). Для работы с динамической памятью: при помощи malloc выделяю, например, 6Гб оперативки и потом при помощи long long int нарезаю кусочки от начального указателя выделенного блока.<br>(Есть тема в конференции).<br>Б). Например, для подсчета числа маршрутов в Задаче Коммивояжера, решаемой методом полного перебора.<br>Число маршрутов равно N&#33;<br>На современных ПК Задачу Коммивояжера можно решить полным перебором для числа городов 13, а если подождать пару-тройку часов - то для 14 городов.<br>Если считать маршруты, то 13&#33;=6.2*10^9, а 14&#33;=8.7*10^10 и 32bit целым тут никак не обойдешься&#33;<br><br>Кстати, по моему опыту обнуление очень большого массива данных (например unsigned char* в 1Гб) - не такая уж и быстрая операция&#33;<br>Занимает порядка 1 сек, что уже видно &quot;на глазок&quot;. А большим массивам указателей NULL присваивается еще дольше&#33;<br>Поэтому если в программе, оперирующей с очень большими массивами данных, есть возможность предварительно не обнулять данные перед расчетом - не надо этого делать. Будет долго&#33;<br>Также я сейчас использую для обнуления функцию memset (ну или для того, чтобы задать целым переменным значение -1).<br>Книжки говорят, что memset работает быстрее, чем прямое обнуление в цикле (?) <br><br>Как то так.<br>Удачи в работе с большими объемами данных и с большими числами&#33;]]></description>
        <author>mkudritsky</author>
        <category>Кроссплатформенный C/C++: cl/gcc/Qt/Gtk+/WxWidgets</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=426799&amp;view=findpost&amp;p=3863484</guid>
        <pubDate>Sat, 16 Apr 2022 17:23:34 +0000</pubDate>
        <title>Какой самый большой целочисленный тип данных в Qt,</title>
        <link>https://forum.sources.ru/index.php?showtopic=426799&amp;view=findpost&amp;p=3863484</link>
        <description><![CDATA[Majestio: <strong class='tag-b'> quint64</strong><br>
<br>
<a class='tag-url' href='https://doc.qt.io/qt-5/qtglobal.html#quint64-typedef' target='_blank'>https://doc.qt.io/qt-5/qtglobal.html#quint64-typedef</a>]]></description>
        <author>Majestio</author>
        <category>Кроссплатформенный C/C++: cl/gcc/Qt/Gtk+/WxWidgets</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=426799&amp;view=findpost&amp;p=3863415</guid>
        <pubDate>Fri, 15 Apr 2022 14:01:47 +0000</pubDate>
        <title>Какой самый большой целочисленный тип данных в Qt,</title>
        <link>https://forum.sources.ru/index.php?showtopic=426799&amp;view=findpost&amp;p=3863415</link>
        <description><![CDATA[Сергей85: с точки зрения размера в байтах?]]></description>
        <author>Сергей85</author>
        <category>Кроссплатформенный C/C++: cl/gcc/Qt/Gtk+/WxWidgets</category>
      </item>
	
      </channel>
      </rss>
	