当我从文件中读取原始字节时,我正在读取文件的标题并使用(左移)和(或)wav
填充我的类成员。现在,巧合的是,我遇到了以下情况
,其中is of type和is of所以我可以使用.<<
|
uBytesPerSecond
unsigned
data
char*
std::fstream::read
现在当我uBytesPerSecond
在调试器中创建
this->uBytesPerSecond |= data[0x1F]; //0x00 ->uBytesPerSecond = 0x00000000
this->uBytesPerSecond <<= 8; // ->uBytesPerSecond = 0x00000000
this->uBytesPerSecond |= data[0x1E]; //0x02 ->uBytesPerSecond = 0x00000002
this->uBytesPerSecond <<= 8; // ->uBytesPerSecond = 0x00000200
this->uBytesPerSecond |= data[0x1D]; //0xb1 ->uBytesPerSecond = 0xffffffb1 !!!
this->uBytesPerSecond <<= 8; // ->uBytesPerSecond = 0xffffb100
this->uBytesPerSecond |= data[0x1C]; //0x10 ->uBytesPerSecond = 0xffffb110
在这种情况下,预期的输出是uBytesPerSecond = 0x00002b110
。请告诉这里发生了什么以及我如何解决这个问题。
我正在使用MSVC2012
Windows 8,这是一个应用程序VC++-Console
。