[elektro] PIC C32 shift right

potyo potyo.ada at gmail.com
Thu Jan 17 08:19:19 CET 2013


Ezzel én is így vagyok. Teljesen rászoktam az "unsigned char", "unsigned",
"unsigned long" használatára. Nálam azzal szokott gond lenni, hogy valamit
megírok ilyennel, aztán jövök rá, hogy pl. hőmérséklet méréséhez kell a
signed is :-))


2013. január 17. 8:13 bbog írta, <bbog at t-online.hu>:

> Üdvözlet.
>
> Idáig nem tudtam konkrétan megindokolni, hogy miért csak akkor használok
> signed típust, ha tudom hogy szükség van rá, egyébként mindig unsigned-et
> használok, akkor is, ha esetleg mindegy volna, akkor is ha többet kell
> gépelni.
> Na hát például ezért
>
> üdv
> Bogdányi Béla
> .
> ----- Original Message -----
> From: "SZIGETI Szabolcs" <szigiszabolcs at gmail.com>
> To: <elektro at tesla.hu>
> Sent: Thursday, January 17, 2013 7:15 AM
> Subject: Re: [elektro] PIC C32 shift right
>
>
> Hali!
>
> Igy van belefutottál a C egyik szépségébe, az implementáció függő
> működésbe. Van még pár ilyen dolog.
>
> Szabolcs
> 2013.01.17. 4:23, "flaist" <flaist at gmail.com> ezt írta:
>
> > Szia!
> >
> > 1980-ban még 8080-al kezdtem.
> > Akkor még a C csak kiváltságosoknak jutott.
> > így a bit toszogatás jó néhány verzióját használtam már több féle
> > assembly-ben.
> > RRC RRCF RRNCF SHR SAR ROR RR   SRAV SRA SRL SRLV
> >
> >
> > Na de a bajom az volt, hogy C18 és C32 teljesen másképp működik a jobbra
> > shiftelésnél előjeles változóval.
> > Amit eddig úgy hittem hogy egységes, de most olvasom az ANSI-C könyvet,
> és
> > azt írja, hogy ez "számítógép" függő lehet.
> > És a PIC18 és PIC32 nem egyforma "számítógép" !
> > Most már megtanultam.
> >
> >
> > -----Original Message-----
> > From: elektro-bounces at tesla.hu [mailto:elektro-bounces at tesla.hu] On
> Behalf
> > Of Info
> > Sent: Thursday, January 17, 2013 12:41 AM
> > To: flaist
> > Subject: Re: [elektro] PIC C32 shift right
> >
> > Szia!
> >
> > > Tegnap C32 fejlesztéskor szívtam  az alábbival.
> > > Aztán hosszas nyomozás után megtaláltam a lenti megjegyzést..
> > > Eddig C18 használtam ott nem hozta be az előjel bitet, még
> > > bosszankodtam is anno miatta.
> > > Melyik az elterjedtebb verzió?
> > > Mennyire jó ötlet így variálni az alap műveleteket (pláne azonos
> > > IDE-ben)
> > ?
> >
> > Nos, látom nem ismered az assembly nyelvet, többnyire 3 léptető utasítás
> > van, ezeket variálhatod:
> > - logikai (belépő bit 0)
> > - aritmetikai (belépő bit nem lesz, marad ami volt)
> > - "carry"-n keresztül (belépő bit carry flagból) a kilépő bitek többnyire
> > a
> > carryba mennek, de ez sem általános, most mindegy is.
> >
> > Szóval amit leírtál jelenséget teljesen természetes, hiszen a char
> > előjeles
> > (ha csak a fordítási opciókban mást nem adsz meg).
> > Ezért aritmetikai léptetést használt.
> > Az unsigned char-nál pedig felismerte, hogy simán tologatni akarsz ezért
> > logikai léptető utasítást fordított a kódba.
> > A harmadik nem szokott elérhető lenni C-ből, az a fordító belső
> magánügye.
> > Szal a fordítód jól működik.
> >
> > -----------------------------------------
> >           elektro[-flame|-etc]
> >
> > -----------------------------------------
> >           elektro[-flame|-etc]
> >
> -----------------------------------------
>           elektro[-flame|-etc]
>
> -----------------------------------------
>           elektro[-flame|-etc]
>


More information about the Elektro mailing list