IMHO.WS

IMHO.WS (http://www.imho.ws/index.php)
-   Программирование (http://www.imho.ws/forumdisplay.php?f=40)
-   -   Перевод дробных чисел в бинарное представление (http://www.imho.ws/showthread.php?t=103174)

Rundll 02.05.2006 17:19

Перевод дробных чисел в бинарное представление
 
Люди, поможите плиз!

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

Заранее благодарен!

GOre01 02.05.2006 17:54

Как-то препод просил выводить числа с плавающе точкой в двоичное представление.
Код:

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");
}

Только одного не понимаю, одно дело выводить из на печать, и другое дело переводить, они и так в двоичном (шестнадцатиричном) виде в памяти представлены, зачем переводить?

Rundll 02.05.2006 22:18

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

Код отличный, то что мне нужно! Спасибо за то что избавил от необходимости писать самому!


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

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