#include <studio.h>
void main ()
{
short a=0xf245, b, c;
b=a<<8;
c=a>>8;
c=c&0x00ff;
a=b+c;
printf(“a=%x”, a);
}
第6行c的值應為0xfff2,能不能具體解釋一下,為什么?
uj5u.com熱心網友回復:
你的編譯器的技術路線是發現你使用有符號的整數進行右移的時候,就決定維持符號位不變。符號位原來是1,所以左邊移位進來的就全是1了。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/268731.html
標籤:C語言
下一篇:大佬們,救命啊,這哪錯了
