C++指針強轉等效的位運算

#include<iostream>
using namespace std;

int main()
{
    char* pStr = "中bcdefghi";
    unsigned int* ptr = (unsigned int*)pStr;
    cout<<ptr[0]<<endl;
    cout<<(unsigned char)pStr[0]<<","<<(unsigned char)pStr[1]<<","<<(unsigned char)pStr[2]<<","<<(unsigned char)pStr[3]<<endl;
    unsigned int tmp = ((unsigned int)pStr[0]) & 255;
    tmp |= ((((unsigned int)pStr[1]) & 255) << 8);
    tmp |= ((((unsigned int)pStr[2]) & 255) << 16);
    tmp |= ((((unsigned int)pStr[3]) & 255) << 24);
    cout<<tmp<<endl;
    cout<<(tmp & 255)<<","<<((tmp & (255 << 8)) >> 8)<<","<<((tmp & (255 << 16)) >> 16)<<","<<((tmp & (255 << 24)) >> 24)<<endl;
    return 0;
}
相關文章
相關標籤/搜索