• Почему для счётчиков не используют беззнаковые (unsigned) числа?

    @AlexSku
    не буду отвечать из-за модератора
    Смотрите фокус. Такой код выполняется:
    unsigned int i = 0, N = 5;
    	
    	while (i < N) {
    		std::cout << i << "\n";
    		++i;
    	}

    А в таком стиле нет:
    unsigned int i = 0, N = 5;
    	
    	while (i - N < 0) {
    		std::cout << i << "\n";
    		++i;
    	}

    Дело в том, что умный компилятор понял, что арифметическая операция с беззнаковыми числами всегда неотрицательна, и просто выкинул ваш цикл как бесполезный. Так что лучше использовать знаковые счётчики.
    UPDATE
    Точнее, может, он и не выкидывает, но разница это беззнаковое число, поэтому больше нуля ,поэтому первая итерация цикла не выполняется и цикл заканчивается.
    Ответ написан
    1 комментарий
  • Почему для счётчиков не используют беззнаковые (unsigned) числа?

    Adamos
    @Adamos
    У std::vector как раз не int, а size_t, который алиас для unsigned long.
    В результате строгий компилятор на действия индексной арифметики, где, внезапно, вполне могут использоваться отрицательные числа, сыплет предупреждениями о том, что вместо беззнакового числа получается знаковое, ай-яй-яй. И оно с одной стороны правильно, потому что отрицательных индексов, скорее всего, не предполагается и тут могут крыться ошибки, а с другой - ну что программист с этим сделает? Приведет к беззнаковому и вместо одной ошибки спровоцирует другую?
    Ответ написан
    2 комментария
  • Корректное сокращение слова 'processing' в программировании?

    Не сокращать.
    Ответ написан
    Комментировать
  • Исходный, Машинный и Объектный коды - Разница?

    @stul5tul
    Исходный код или исходный текст - текст на языке программирования, который пишет человек (как правило, человек). Это обычный текстовый файл (как правило).

    Но процессоры в компьютера/смартфонах и пр. - довольно тупые устройства, способные понимать только чрезвычайно простой машинный код.
    Поэтому любая программа прямо или косвенно превращается из исходного кода в машинный и только после этого исполняется компьютером/смартфоном и пр.

    Объектный код - это промежуточное представление кода. Еще не машинный, но уже не исходный. Используется на этапе сборки программы из нескольких кусков (возможно, написанных в исходном коде разными людьми и в разное время).

    Машинный код - уже готов для исполнения. То есть просто берете его, ничего не нужно более. Делаете двойной щелчок мыши, к примеру, и программа запускается.

    Пример исходного кода - легко:
    package example
    
    func Add(p int) int {
       return p + p
    }


    Пример объектного кода и машинного кода - бессмысленен. Что объектный, что машинный коды этой программы
    не предназначены для чтения человеком.

    Это для вас будет выглядеть как абракадабра.
    !<arch>
    __.PKGDEF       0           0     0     644     30328     `
    go object windows 386 go1.11 X:framepointer
    build id "ZKpaYf_Flzmm6jns9NJp/RbNW-F32vdlI8SgqpfEX"
    ----
    
    
    $$B
    i

    И это еще не весь объектный код - там большой файл.

    Машинный код - еще бОльшая абракадабра, я его сюда даже вставить не смог. Текстовый редактор не пропускает эту кучу спецсимволов и т.п.

    Упомянутая вами цепочка (исходный - объектный - машинный) касается языков программирования, компилируемых в машинный код:
    C/С++/Go/Rust/Pascal.

    Некоторые языки предназначены для компиляции в байт-код. Его нельзя назвать ни машинный ни объектным. Это Java/Kotlin/C#. Если бы этот код выполнялся непосредственно процессором (CPU) его можно было бы назвать машинным. Но он выполняется только через специальную программу.

    Языки Ruby/Python/JavaScript ничего похожего на машинный код не генерят.
    Ответ написан
    1 комментарий
  • Почему для счётчиков не используют беззнаковые (unsigned) числа?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Часто вижу в коде на C++ и C#, что для счётчиков … используют int, а не uint/unsigned int.
    Почему праграмисты делают это?

    Я слышал следующую теорию, почему это имеет смысл в С++: потому что значение знакового типа в корректно написанном коде не переполняется. (А если таки случилось переполнение, то это UB и всё уже не важно). Поэтому если счётчик имеет знаковый тип и с ним на каждой итерации происходит, например, инкремент, то значение счётчика только увеличивается. Это, в свою очередь, даёт дополнительные возможности для оптимизации. Беззнаковый счётчик инкрементируемый на каждой итерации может внезапно обнулиться, это может быть легальным поведением программы на которое рассчитывает программист.

    А почему они фактически используют int -- наверняка потому что никакой практической разницы не видно, а буков нужно меньше.
    Ответ написан
    2 комментария
  • Почему для счётчиков не используют беззнаковые (unsigned) числа?

    Griboks
    @Griboks
    Потому что длина массива имеет тип int. Счетчик, который нужен для итераций по массиву, даже теоретически не можетппреполниться, потому что всегда будет не более n-1, где n:int.

    Так устроен дизайн шарпа. Но, думаю, в любом случае всем было бы лень следить за типами даже в случае индексации по unsigned.
    Ответ написан
    21 комментарий
  • Что не так с цифровой подписью установщика uTorrent?

    tsklab
    @tsklab
    Здесь отвечаю на вопросы.
    Дело не сертификате, а в вашей системе.
    62fe6ac84b384123380950.png

    И это 3.5.0.0, а есть 3.5.5
    Ответ написан
    Комментировать
  • Нужна ли в университете дискретная видеокарта?

    AlexNest
    @AlexNest
    Работаю с Python/Django
    Видеокарта может быть нужна например для ресурсоемких графических задач и в некоторых случаях может дать прирост вычислительной мощи в областях "специфического" программирования (математические вычисления, анализ данных, ии).
    В остальном - на текущем этапе куда важнее:
    • Наличие SSD (заявляю как человек, до недавнего времени, считавший, что HDD еще "достаточно шустрые")
    • Минимум 8 гигов оперативы
    • Минимум 4 ядра (это именно что минимум)

    То-есть в целом любая современная система. Далее - зависит от направления, по которому обучаетесь.
    Для компилируемых языков (плюсы/шарп/раст) в общем случае упор на проц. Если андроид то, по хорошему и памяти побольше и проц получше.
    upd: Ну и вы уверены, что вам нужен ноут? Даже с поправкой на последние события, собрать аналогичный по мощности стационарник должно выйти дешевле.
    Ответ написан
    3 комментария
  • Нужна ли в университете дискретная видеокарта?

    yakovlev_13
    @yakovlev_13
    Шаманство, экзорцизм и некромантия.
    конечно нужна ) не только ж учиться)
    как говорится : Делу - время, потехе - видяха!
    Ответ написан
    3 комментария
  • Нужна ли в университете дискретная видеокарта?

    Griboks
    @Griboks
    Посмотрите системные требования всех программ, которые вы планируете использовать одновременно, сложите и добавьте 20-50 процентов сверху.

    Для программирования видеокарта не требуется.
    Ответ написан
    Комментировать
  • Материнка пищит о неисправности видеокарты, что делать?

    gremlin_tomsk
    @gremlin_tomsk
    Системный администратор, DevOps
    6пин кабель питания к видеокарте подключили? каким кабелем в какой разъем подключали монитор?
    Ответ написан
    Комментировать
  • Материнка пищит о неисправности видеокарты, что делать?

    @andrulix Автор вопроса
    простите за то, что задал такой тупой вопрос))
    Оказалось, что мы с другом - два слепых лоха и подключили моник к материнке(то есть интегр. видюхе), а не к самой карточке :((
    всем спасибо за ответы, расходимся))
    Ответ написан
    1 комментарий
  • На каком железе лучше всего начать изучении C++ с нуля?

    @evgeniy_lm
    На каком железе лучше всего начать изучении C++ с нуля?
    На том которое у тебя есть

    Хочу начать изучать C++ с нуля
    Правильная хотелка, но хотеть мало нужно изучать. Например, 40 лет назад когда я начал изучать программирование персональных компьютеров вообще не было. Но это мне ни как не помешало.

    не знаю что лучше для этого (ноутбук или стационар).
    А я знаю, что ноут это не великое счастье, а суровая необходимость. Если ты БОМЖ то куда деваться, придётся ноут. Если есть более менее постоянное жилье то лучше стационар.
    Ответ написан
    2 комментария
  • На каком железе лучше всего начать изучении C++ с нуля?

    CityCat4
    @CityCat4
    //COPY01 EXEC PGM=IEBGENER
    На любом. Это не система трехмерного проектирования :)
    Ответ написан
    Комментировать
  • На каком железе лучше всего начать изучении C++ с нуля?

    Никакой разницы.
    Ответ написан
    Комментировать
  • На каком железе лучше всего начать изучении C++ с нуля?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Мне всегда был интересен стационарник с точки зрения того что туда можно было подключить много устройств. Сначала были ISA-слоты. Потом PCI, потом express. Потом дисковые шлейфы менялись IDE/SATA-1-2-3. Короче любил я это дело. Возился со списанным железом. С неработающим. Был рекорд что я неделю сидел с сгоревшим WD в котором половина блоков была битая. Переформатировал его на штук 10 disk partitions так что битые секторы не попадали в пространстово использования. И потом скленил заново через LVM. Тогда я только изучал Linux Redhat.

    Ноутбук в этом смысле как мобильный телефон. Он просто работает но нету такой себе творческой свободы. Разве что USB слоты.

    Почему я речь завел про железо и С++. Ну просто мне кажется что С++ ник должен быть отчасти железячником. Иначе зачем вам С++ ?
    Ответ написан
    1 комментарий
  • Компьютер иногда зависает на заставке материнки. В чем может быть проблема?

    @adeadhoine
    нельзя просто взять и загуглить ошибку
    В чем может быть проблема?

    Причин может быть много, неправильные настройки биоса, неисправный хард, память, поврежденная мать.

    Может ли блок питания так влиять на компьютер?

    Может.

    Попробуйте:
    1) Подключить и послушать, что пищит спикер.
    2) Сбросить/обновить биос.
    3) Отключить сначала хард, включить. Обратно подключить, отключить ссд, включить.
    4) Повтыкать оперативку в разные слоты по одной штуке.
    5) Попробовать подключить другой бп.
    Ответ написан
    Комментировать
  • Сколько указателей в питон словаре?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Python
    Седой и строгий
    Указатель на литерал name, указатель на литерал Dima, указатель на литерал age и указатель на синглтон 19. Переменная mydict к словарю не относится.
    Ответ написан
    7 комментариев
  • Что будет если совместить Intel Core 2 Quad Q9650 и NVIDIA GeForce GTX 960?

    @rene250382
    Будет. Абсолютно во всех задачах. И дело тут не в ядрах и потоках, а в дико устаревшей архитектуре.
    У меня GTX1050(2Гб). И когда я пересел с Xeon E5450 (4 ядра 4 потока 3.0ГГц) на Ryzen 3 1600, то получил прирост АБСОЛЮТНО во всех играх.
    Ответ написан
    1 комментарий
  • Что будет если совместить Intel Core 2 Quad Q9650 и NVIDIA GeForce GTX 960?

    @Drno
    Проц старый, могут быть проблемы. Но это будет зависеть от того, насколько будет загружена видеокарта
    Ответ написан
    Комментировать