[elektro] számábrázolás

Palasik Sandor palasik at mail.datanet.hu
Wed Nov 14 14:02:24 CET 2012


> Mi lehet az kódolás algoritmusa?

Valami lebegőpontos ábrázolás, de csak az első négy bájt érdekes.

A felsorolt példák az IEEE 32 floating pointból előállíthatóak. Venni kell
az ábrázolt számot, beszorozni néggyel és ezt átalakítani little endian 32
bites float-ba (Intel féle bájtsorrend), majd megcserélni az első és a 
második bájtot, illetve a harmadik és negyedik bájtot.

Ez a program pl. előállítja az öszes példát:

#include <stdio.h>

int v;
float fv;
unsigned char *b;

int main(int argc,char **argv)
{
        if (argc != 2)
                return 1;

        v = atoi(argv[1]);

        fv = v*4.0;

        b = (unsigned char *)&fv;

        printf("%3d -> %02X %02X %02X %02X\n",v,b[1],b[0],b[3],b[2]);

        return 0;
}

Palasik Sándor



More information about the Elektro mailing list