[elektro] PIC C32 shift right
bbog
bbog at t-online.hu
Thu Jan 17 08:13:01 CET 2013
Ü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]
More information about the Elektro
mailing list