Jump to content

Wrong Result When Explicitly Casting During A Shift

Recommended Posts

I think this is a bug.


unsigned short y;

unsigned char x;



lets say

y=FF45 ;


i would like to put the high byte of y into x


if I do an implicit casting:

x = y >> 8;


the result is correct x = FF


If I do an explicit casting:


x = (unsigned char) y >> 8;


I get x = 00

Link to post
Share on other sites
No error here. Your expression first casts short to char and than shifts this char.





In this case should'nt it be x=45?


OOps, I see youir point - my mistake


I think 0x00 is a perfectly good result. You are shifting in a '0' from the left 8 times not rotating a char 8 times.





Link to post
Share on other sites

Join the conversation

You are posting as a guest. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Create New...