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ą.