Tema: Re: Gcc AVR
Autorius: Levas
Data: 2012-02-13 01:15:06
eee, lygtai teisingai:
http://babbage.cs.qc.cuny.edu/IEEE-754/index.xhtml

rezultatai sutampa, tik is kito galo.

-- 
Bye, Levas
--
http://www.vabolis.lt


"Levas" <kazkur@pasbobute.lt> wrote in message news:jh9gn2$ufg$1@trimpas.omnitel.net...
> reikes isbandyti realiam pasaulyje sita metoda. Iki (unsigned char *)&x buvau dasikases, bet pasipyle visokie ispejimai is kompilerio puses. Buvau ir verte lygtai realia isgaves, bet paskiau kazkaip tu baitu verte pasidare nei i tvora nei i mieta.
> 
> Su stumdymu nebbandziau, bet ten skaicius su kableliu ir nezinau ar nesukvailios programa.
> 
> 
> Surasiau:
> unsigned char *ptr=(void *) &x;
>  
> double x=0.0000001;  
>  itoa(ptr[0],buffer,16);
>  print_ser(buffer);
>  print_ser(" ");
> 
>  itoa(ptr[1],buffer,16);
>  print_ser(buffer);
>  print_ser(" ");
>  itoa(ptr[2],buffer,16);
>  print_ser(buffer);
>  print_ser(" ");
>  itoa(ptr[3],buffer,16);
>  print_ser(buffer);
>  print_ser(" ");
>  print_ser("\r\n");
> 
> Rezultatas: 95 bf d6 33
> 
> x=3.1415926
> da f 49 40
> 
> x=10.000000
> 0 0 20 41
> x=1.00
> 0 0 80 3f
> x=0
> 0 0 0 0
> x=-1
> 0 0 80 bf
> 
> 
> ? Ar tai teisinga?
> 
> -- 
> Bye, Levas
> --
> http://www.vabolis.lt
> 
> 
> "Laimis" <wiela@centras.lt> wrote in message news:jh9ad6$nbh$1@trimpas.omnitel.net...
>> Levas rašė:
>> 
>>> Yra kintamasis double x Jis viduje atrodo kaip 4 baitai.
>>> Kaip pamatyti tuos 4 baitus (ju turini). Tipo a[0]=maziausio baito
>>> verte, a[1]=. Kad atspausdinti vidine struktura to skaiciaus.
>> 
>> unsigned char *ba = (unsigned char *) &x;
>> 
>> (ba[0], ... ba[3])
>> 
>> Arba
>> 
>> union double_bytes {
>>     double d;
>>     char bytes[4];
>> } u_db;
>> 
>> u_db.d = x;
>> 
>> (u_db.bytes[1], ... u_db.bytes[4])
>> 
>> 
>> Galų gale, galima pasistumdyti pasiimant vieną baitą:
>> unsigned char b1 = x >> 24
>> unsigned char b2 = x >> 16
>> unsigned char b3 = x >> 8
>> unsigned char b4 = x
>> 
>> p.s. reikia supaisyti endian'iškumą.