unsigned int temp;unsigned char a,b;mian(){temp=(a<<8)|b;}这个是把两个8位二进制数合成一个16为二进制数吗?是的话有一点不明白:a左移8位后不就变成8位都为0的二进制数了吗,然后和b按位或怎么是16位二进制数呢?还是a左移8位后变成16位二进制数了,低八位全为0.C语言中对8位二进制数左移,移出的高位不是舍弃吗?但为什么变成16位的二进制数了呢