Калькулятор посчитать блоки на дом калькулятор: Калькулятор для расчета количества блоков на дом

c — Самый быстрый способ подсчета количества блоков памяти

Задавать вопрос

спросил

Изменено 7 лет, 9 месяцев назад

Просмотрено 2к раз

У меня есть область памяти, которая разбита на блоки по 9 предустановленных0013 БЛОКРАЗМЕР Размер . Учитывая блок памяти, определенный его смещением OFFSET в байтах и ​​ SIZE в байтах, как эффективно вычислить количество блоков, содержащих этот блок памяти?

Например, пусть BLOCKSIZE=8 . Тогда блок памяти с OFFSET=0 и SIZE=16 займет 2 блока, а блок с OFFSET=4 и SIZE=16 займет 3 блока.

Я могу написать такую ​​формулу (используя целочисленную арифметику в C):

количество блоков = (СМЕЩЕНИЕ + РАЗМЕР - 1) / РАЗМЕР БЛОКА - (СМЕЩЕНИЕ / РАЗМЕР БЛОКА) + 1;

Этот расчет потребует 2 деления и 4 сложения. Можем ли мы сделать лучше, при условии, что BLOCKSIZE является степенью 2 и OFFSET >= 0 и SIZE > 0 ?

ОБНОВЛЕНИЕ: Я понимаю, что в этом случае деление можно заменить сдвигом.

  • c
  • управление памятью

3

Можем ли мы сделать лучше, при условии, что BLOCKSIZE является степенью числа 2 ?

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

 количество блоков = (РАЗМЕР + РАЗМЕР БЛОКА - 1) / РАЗМЕР БЛОКА
        + ((SIZE % BLOCKSIZE) + (СМЕЩЕНИЕ % BLOCKSIZE)) / BLOCKSIZE;
 

Я не вижу никакого способа выполнить (по крайней мере) два целочисленных деления (или эквивалентных битовых сдвигов), потому что любой подход к вычислению требует вычисления двух подсчетов блоков.

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

То, что BLOCKSIZE является степенью двойки, может помочь вам выбрать более эффективные операции, но не поможет уменьшить номер операций требуется. Однако вы могли бы немного сократить количество операций, если бы могли полагаться на то, что SIZE будет кратным BLOCKSIZE . В этом случае вы можете сделать это:

 numberOfBlocks = SIZE / BLOCKSIZE + (OFFSET % BLOCKSIZE)? 1 : 0;
 

В качестве альтернативы, если было бы достаточно вычислить верхнюю границу для количества покрытых блоков, вы могли бы сделать это:

 numberOfBlocksBound = SIZE / BLOCKSIZE + 2;
 

или немного меньше во многих случаях, но дороже для вычислений:

 numberOfBlocksBound = (SIZE + BLOCKSIZE - 1) / BLOCKSIZE + 1;
 

Зарегистрируйтесь или войдите в систему

Зарегистрируйтесь с помощью Google

Зарегистрироваться через Facebook

Зарегистрируйтесь, используя электронную почту и пароль

Опубликовать как гость

Электронная почта

Обязательно, но не отображается

Опубликовать как гость

Электронная почта

Требуется, но не отображается

Калькулятор питания McDonald’s: калории и многое другое

Найдите информацию о калориях, углеводах и пищевой ценности McDonald’s Расскажи о своих любимых продуктах с помощью калькулятора питания.

*Процент дневной нормы (DV) основан на диете в 2000 калорий

Важное примечание:
В McDonald’s мы уделяем большое внимание тому, чтобы предлагать нашим клиентам качественные и вкусные блюда каждый раз, когда они посещают наши рестораны. Мы понимаем, что каждый из наших клиентов имеет индивидуальные потребности и соображения при выборе места, где можно поесть или выпить вне дома, особенно клиенты с пищевой аллергией. В рамках наших обязательств перед вами мы предоставляем самую последнюю информацию об ингредиентах, доступную от наших поставщиков продуктов питания, для девяти наиболее распространенных аллергенов, определенных Управлением по контролю за продуктами и лекарствами США (яйца, молочные продукты, пшеница, соя, арахис, лесные орехи, рыба). , моллюски и кунжут), чтобы наши гости с пищевой аллергией могли сделать осознанный выбор блюд. Тем не менее, мы также хотим, чтобы вы знали, что, несмотря на принятие мер предосторожности, обычные кухонные операции могут включать в себя некоторые общие зоны приготовления и приготовления пищи, оборудование и посуду, и существует вероятность того, что ваши продукты питания вступят в контакт с другими продуктами питания, включая аллергены.

Мы рекомендуем нашим клиентам с пищевой аллергией или особыми диетическими потребностями посетить сайт www.mcdonalds.com для получения информации об ингредиентах и ​​проконсультироваться со своим врачом по вопросам, касающимся их диеты. Если у вас есть вопросы о нашей еде, свяжитесь с нами напрямую, используя наши формы обратной связи.

Процентные дневные значения (DV) и RDI основаны на неокругленных значениях.

**Процент дневной нормы (DV) основан на диете в 2000 калорий. Ваши ежедневные значения могут быть выше или ниже в зависимости от ваших потребностей в калориях.

Информация о питании на этом веб-сайте получена на основе испытаний, проведенных в аккредитованных лабораториях, опубликованных ресурсов или информации, предоставленной поставщиками McDonald’s. Информация о питании основана на стандартных составах продуктов и размерах порций. Калории для газированных напитков основаны на стандартном уровне наполнения плюс лед. Если вы пользуетесь фонтанчиком самообслуживания внутри ресторана для заказа напитков, см.

табличку, размещенную у фонтанчика с напитками, чтобы узнать калорийность напитков без льда. Вся информация о питании основана на средних значениях ингредиентов и округлена в соответствии с действующими правилами NLEA FDA США. Различия в размерах порций, методах приготовления, тестировании продуктов и источниках поставок, а также региональные и сезонные различия могут повлиять на пищевую ценность каждого продукта. Кроме того, рецептуры продуктов периодически меняются. Вы должны ожидать некоторые различия в содержании питательных веществ в продуктах, приобретенных в наших ресторанах. Размеры напитков могут отличаться в зависимости от вашего рынка. McDonald’s USA не сертифицирует и не заявляет, что какие-либо блюда из меню в США являются халяльными, кошерными или соответствующими каким-либо другим религиозным требованиям. Мы не рекламируем какие-либо позиции нашего меню в США как вегетарианские, веганские или безглютеновые. Эта информация верна по состоянию на январь 2022 года, если не указано иное.

Важное примечание:
В McDonald’s мы уделяем большое внимание тому, чтобы предлагать нашим клиентам качественные и вкусные блюда каждый раз, когда они посещают наши рестораны. Мы понимаем, что каждый из наших клиентов имеет индивидуальные потребности и соображения при выборе места, где можно поесть или выпить вне дома, особенно клиенты с пищевой аллергией. В рамках наших обязательств перед вами мы предоставляем самую последнюю информацию об ингредиентах, доступную от наших поставщиков продуктов питания, для девяти наиболее распространенных аллергенов, определенных Управлением по контролю за продуктами и лекарствами США (яйца, молочные продукты, пшеница, соя, арахис, лесные орехи, рыба). , моллюски и кунжут), чтобы наши гости с пищевой аллергией могли сделать осознанный выбор блюд. Тем не менее, мы также хотим, чтобы вы знали, что, несмотря на принятие мер предосторожности, обычные кухонные операции могут включать в себя некоторые общие зоны приготовления и приготовления пищи, оборудование и посуду, и существует вероятность того, что ваши продукты питания вступят в контакт с другими продуктами питания, включая аллергены.

LEAVE A REPLY

Ваш адрес email не будет опубликован. Обязательные поля помечены *