Tema: Re: Gcc AVR
Autorius: Levas
Data: 2012-02-13 01:07:14
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ą.
3Dastronomyagricultureaudioautosautos.audiautos.audioautos.binariesautos.bmwautos.clubautos.fordautos.hondacrxautos.japanautos.mercedesautos.opelautos.sportautos.volvoautos.vwaviaavia.binariesbankcardsbinariesbooksbuildingcinemacommercecomp.hardwarecomp.softwarecomp.lietuvinimascomp.networksculturedarbas.ieskaudarbas.siulaudesigneconomicselectronicsfaunafauna.aquafauna.binariesfishingflorafotofoto.binariesgamesgames.csgames.onlinegsmgurmanaihumourhumour.binariesinternetlawmicrosoftmotomusicmusic.binariesmusic.instrumentsmusic.LT.binariesnavigacijaphppoliticsprogrammingrpgsportstudyingsveikatatalktesttranslationtransportationtraveltravel.binariestvunixvideovideo.binarieswatersportswwwwww.flashpdaautos.supermama.ltmobiledarbasretro.3Dretro.agricultureretro.astronomyretro.audioretro.autosretro.autos.audiretro.autos.audioretro.autos.binariesretro.autos.bmwretro.autos.clubretro.autos.fordretro.autos.hondacrxretro.autos.japanretro.autos.mercedesretro.autos.opelretro.autos.sportretro.autos.supermamaretro.autos.supermama.ltretro.autos.volvoretro.autos.vwretro.aviaretro.avia.binariesretro.bankcardsretro.beosretro.binariesretro.booksretro.buildingretro.cinemaretro.commerceretro.compretro.comp.hardwareretro.comp.lietuvinimasretro.comp.networksretro.comp.softwareretro.cultureretro.darbasretro.darbas.ieskauretro.darbas.siulauretro.designretro.economicsretro.electronicsretro.e-vejasretro.faunaretro.fauna.aquaretro.fauna.binariesretro.fishingretro.floraretro.fotoretro.foto.binariesretro.gamesretro.games.csretro.games.onlineretro.games.rpgretro.genealogijaretro.gsmretro.gurmanairetro.humourretro.humour.binariesretro.internetretro.YZFretro.YZF.nebukretro.YZF.nebuk.netikintisretro.YZF.nebuk.netikintis.bukretro.YZF.nebuk.netikintis.buk.tikintisretro.lawretro.microsoftretro.mobileretro.motoretro.musicretro.music.binariesretro.music.instrumentsretro.music.LTretro.music.LT.binariesretro.navigacijaretro.newsretro.news.taisyklesretro.newuserretro.pdaretro.phpretro.politicsretro.programmingretro.rpgretro.sportretro.studyingretro.sveikataretro.talkretro.translationretro.transportationretro.travelretro.travel.binariesretro.tvretro.unixretro.videoretro.video.binariesretro.watersportsretro.wwwretro.www.flashdiylt.rkm.news.announcelt.rkm.news.newuser