Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: деление целых и получение целую дробную часть
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > Программирование
addi
Здравствуйте
Возникла необходимость деления целых чисел в рамках atxmega32d4 и IAR 6.12 и дале оперирование над целыми
Пробую на следующем примере:
Код
float cntpf;
unsigned char l;

cntpf = l*12/512;
Send_Byte(cntpf); // unsigned char

Он определенно не правильный потому как в нем учитывается дробная часть при преобразовании в unsigned char в функции Send_Byte.
Подскажите пожалуйста кто знает как можно получить дробную часть чтобы мне ее далее учесть.

Заранее благодарен
редактор
если целочисленное деление то

Код
int a,b,c
a =b/c; // целая часть
a =b%c; // остаток от деления

Если для float? то библиотеки надо смотреть, так не помню
Палыч
Не очень понятно: что же Вы хотите получить?
Если разделить число с плавающей запятой на целую и дробную части (т.е. одно число - всё, что было до запятой; второе - после запятой), то есть функция modf.
addi
Цитата(Палыч @ Oct 31 2012, 10:50) *
Не очень понятно: что же Вы хотите получить?
Если разделить число с плавающей запятой на целую и дробную части (т.е. одно число - всё, что было до запятой; второе - после запятой), то есть функция modf.

угу, не подскажите ее синтаксис?

сделал пока так:

Код
unsigned short;
unsigned char cntpfd;

                      cntpf = l*12;
                      cntpf = cntpf / 512;
                      cntpfd = cntpf % 512;
Палыч
Цитата(addi @ Oct 31 2012, 11:59) *
не подскажите ее синтаксис?

Это - стандартная функция:
Цитата
7.12.6.12 The modf functions
Synopsis
1 #include <math.h>
double modf(double value, double *iptr);
Description
2 The modf functions break the argument value into integral and fractional parts, each of
which has the same type and sign as the argument. They store the integral part (in
floating-point format) in the object pointed to by iptr.
Returns
3 The modf functions return the signed fractional part of value.
MrYuran
Стандартная библиотечная функция div из math.h

div_t div(int number, int denom) -- Divide one integer by another.

За один проход возвращает и целую, и дробную часть в виде структуры div_t

Экономия в два раза по сравнению с последовательными / и %
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.