imho.ws
IMHO.WS  

Вернуться   IMHO.WS > Компьютеры > Программирование
Опции темы
Старый 02.05.2006, 17:19     # 1
Rundll
Junior Member
 
Аватар для Rundll
 
Регистрация: 02.11.2003
Адрес: г. Таганрог
Сообщения: 63

Rundll Путь к славе только начался
Перевод дробных чисел в бинарное представление

Люди, поможите плиз!

Существуют ли какие-нибудь функции перевода дробных чисел с плавающей точкой в двоичную систему счисления??? Самому ужасно влом писать!

Заранее благодарен!
__________________
Америка, Америка - это красиво, но Россия вот где есть СИЛА!!!
Rundll вне форума  
Старый 02.05.2006, 17:54     # 2
GOre01
Junior Member
 
Аватар для GOre01
 
Регистрация: 10.08.2004
Адрес: Завис в конторе
Пол: Male
Сообщения: 180

GOre01 Луч света в тёмном царствеGOre01 Луч света в тёмном царствеGOre01 Луч света в тёмном царствеGOre01 Луч света в тёмном царствеGOre01 Луч света в тёмном царствеGOre01 Луч света в тёмном царстве
Как-то препод просил выводить числа с плавающе точкой в двоичное представление.
Код:
void PrintHEXView(float f);		// функция печатает 16-тиричное представление числа
void PrintBINView(float f);		// функция печатает двоичное представление числа

int main(int argc, char* argv[])
{
	float f = 12.140625;
	PrintHEXView(f);
	printf("\n");
	
	PrintBINView(f);
	printf("\n");
	
	return 0;
}
/////////////////////////////////////////////


void PrintHEXView(float f)
{
	void *b = (BYTE*)&f;
	int i = sizeof(f)-1;
	printf("0x");
	for (; i >= 0; i--)
	{
		if (*((BYTE*)b+i) == 0)
			printf("00");
		else
			printf("%X", *((BYTE*)b+i));
	}
}
/////////////////////////////////////////////
char *table[16] = 
{
	"0000",
	"0001",
	"0010",
	"0011",
	"0100",
	"0101",
	"0110",
	"0111",
	"1000",
	"1001",
	"1010",
	"1011",
	"1100",
	"1101",
	"1110",
	"1111"
};

void PrintBINView(float f)
{
	void *b = (BYTE*)&f;
	int i = sizeof(f)-1;
	BYTE bit;
	
	for (; i >= 0; i--)
	{
		bit = *((BYTE*)b+i);
		printf("%s%s", table[bit>>4], table[bit&0xf]);
	}
	printf("b");
}
Только одного не понимаю, одно дело выводить из на печать, и другое дело переводить, они и так в двоичном (шестнадцатиричном) виде в памяти представлены, зачем переводить?
__________________
Не нервируйте меня. Мне скоро негде будет прятать трупы!
GOre01 вне форума  
Старый 02.05.2006, 22:18     # 3
Rundll
Junior Member
 
Аватар для Rundll
 
Регистрация: 02.11.2003
Адрес: г. Таганрог
Сообщения: 63

Rundll Путь к славе только начался
Я пишу программу для тестирования цифрового КИХ фильтра, она должна после всех вычислений фильтрации, выдать в файл матрицу двоичных чисел, которые естественно дробные и устройство об этом знает. Никогда, если честно не думал, что это вызовет затруднение, но вот так получилось, что вызвало

Код отличный, то что мне нужно! Спасибо за то что избавил от необходимости писать самому!
__________________
Америка, Америка - это красиво, но Россия вот где есть СИЛА!!!

Последний раз редактировалось Rundll; 02.05.2006 в 22:29.
Rundll вне форума  


Ваши права в разделе
Вы НЕ можете создавать новые темы
Вы не можете отвечать в темах.
Вы НЕ можете прикреплять вложения
Вы НЕ можете редактировать свои сообщения

BB код Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.

Быстрый переход


Часовой пояс GMT +4, время: 11:22.




Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.