Целочисленное деление ардуино
Я хочу разделить два целых числа и получить, как часто одно из них полностью вписывается в другое, так что на выходе всегда будет целое число. В python вы выполняете такого рода операции с помощью //
.
@Alpha-Craft, 👍0
Обсуждение1 ответ
▲ 4
В C ++ оператор целочисленного деления равен /
, а
деление с плавающей запятой также равно /
. Компилятор выбирает в соответствии с типами
операндов:
если один или оба операнда являются числами с плавающей запятой, вы получаете деление с плавающей запятой
если оба операнда имеют некоторый целочисленный тип, вы получаете целочисленное деление.
Таким образом:
5.0/2.0
,5.0/2
,5/2.0
все они имеют одинаковое значение, а именно2.5
5/2
- это2
.
,
@Edgar Bonet
Смотрите также:
- Как использовать SPI на Arduino?
- Библиотека DHT.h не импортируется
- Светодиоды: разница между общим анодом и общим катодом
- Как повторить кусок кода
- Почему эта программа на C++ не может прочитать Serial.write() моего arduino?
- Как изменить переменную при нажатии кнопки, подключенной к контакту 2
- Отображение двоичных данных на светодиодах
- Корпус кнопки и переключателя
Итак ... просто чистое целочисленное деление (деление без остатка за десятичной запятой)? Это просто оператор деления / с целыми числами. Например, 13/4 даст вам 3 (поскольку оба операнта являются целыми числами, поэтому часть за десятичной запятой игнорируется). Ты это имеешь в виду?, @chrisl
приведите числитель и знаменатель к целым числам соответствующего типа и используйте деление:
(int) num / (int) den
выдает результат int (2-байтовый знак в arduino). возможно, вы захотите использовать stdint.h (он же cstdint) типы, такие как int16_t, которые делают типы понятными независимо от компилятора (в некоторых местах int имеет 4-байтовый знак) вы можете обнаружить, что приведение к математическим операциям полезно и в других сценариях. например, иногда вы хотите обработать ролловер целых чисел (255 + 1 будут преобразованы в 0, если они состоят из 1 байта без знака)., @Abel