Страница 1 из 1

ATTINY13 Деление

Добавлено: Сб янв 18, 2020 09:09:57
unknown99
Почему код float test2 = (512/1024)*10 выдает 0?
Каким образом заставить мк получать 0.xx и умножать это число?
А судя по всему мк при делении выдает 0 и умножает на него, когда необходимо 0,5 * 10

Re: ATTINY13 Деление

Добавлено: Сб янв 18, 2020 09:53:45
Самсусамыч
Тини13 не умеет аппаратно умножать. :)
https://evileg.com/ru/post/17/
https://cxem.net/mc/book29.php

Re: ATTINY13 Деление

Добавлено: Сб янв 18, 2020 10:35:49
uk8amk
Запишите так

Код: Выделить всё

 float test2 = (512.0/1024)*10

или так

Код: Выделить всё

 float test2 = ((float)512/1024)*10

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

Re: ATTINY13 Деление

Добавлено: Сб янв 18, 2020 10:43:18
BOB51
512/1024=0,5
"/" по умолчанию для целых чисел и даст 0.
8)

Re: ATTINY13 Деление

Добавлено: Сб янв 18, 2020 14:38:49
akl
Операция деления делается последней. Всегда.
10*512/1024=5

Re: ATTINY13 Деление

Добавлено: Сб янв 18, 2020 19:45:06
Starichok51
ему же нужна плавающая точка, а не целочисленный результат. поэтому очередность операций не имеет значения.

Re: ATTINY13 Деление

Добавлено: Вс янв 19, 2020 03:03:36
unknown99
Спасибо, ребята.
СпойлерХороший, дружный форум, не то что схем.нет, где один "краб" чего только стоит, у которого вечный пмс.

Re: ATTINY13 Деление

Добавлено: Вс янв 19, 2020 09:47:36
Starichok51
здесь тоже не всегда бывает дружелюбно. всё зависит от вопрошающего ...