[elektro] PIC C32 shift right

flaist flaist at gmail.com
Thu Jan 17 00:08:22 CET 2013


Sziasztok!

 

Tegnap C32 fejlesztéskor szívtam  az alábbival.

 

                char x;

                

                x=0xf0;

                x  >>= 1;              

 

                és az eredmény 0xf8, 

0x78 helyett.

 

                unsigned char x;

 

                definícióval jó lett.

 

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) ?

 

 

Implementation: Bitwise operations on signed values act on the 2's
complement

representation, including the sign bit. The result of a signed right

shift expression is sign extended.

C99 allows some aspects of signed '<<' to be undefined. The

compiler does not do so.

 

Üdv. István.



More information about the Elektro mailing list