Целочисленное деление ардуино
Я хочу разделить два целых числа и получить, как часто одно из них полностью вписывается в другое, так что на выходе всегда будет целое число. В python вы выполняете такого рода операции с помощью //.
@Alpha-Craft, 👍-2
Обсуждение1 ответ
▲ 4
В C ++ оператор целочисленного деления равен /, а
деление с плавающей запятой также равно /. Компилятор выбирает в соответствии с типами
операндов:
если один или оба операнда являются числами с плавающей запятой, вы получаете деление с плавающей запятой
если оба операнда имеют некоторый целочисленный тип, вы получаете целочисленное деление.
Таким образом:
5.0/2.0,5.0/2,5/2.0все они имеют одинаковое значение, а именно2.55/2- это2.
,
@Edgar Bonet
Смотрите также:
- Как использовать SPI на Arduino?
- Библиотека DHT.h не импортируется
- Светодиоды: разница между общим анодом и общим катодом
- Как повторить кусок кода
- Как работают прерывания на Arduino Uno и аналогичных платах?
- Почему эта программа на 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