按位运算和填充字节在一起

时间:2010-12-03 18:52:13

标签: c winapi

有一种简单的方法可以从8个连续的字节形成一个长的长变量....

TotalSectors = sector[0x28]|
               sector[0x28+1] << 8 |
               sector[0x28+2] << 16 |
               sector[0x28+3] << 24 |
               sector[0x28+4] << 32 | 
               sector[0x28+5] << 40 |
               sector[0x28+6] << 48 |
               sector[0x28+7] << 56;

TotalSectors是一个很长的变量......

我正在使用Windows平台,win32 api是我的主要选择.....这项工作的任何现有宏都会有所帮助....

提前致谢...

3 个答案:

答案 0 :(得分:3)

Endianness很好。所以只是演员:

 TotalSectors = *(long long*)&sector[0x28];

答案 1 :(得分:1)

for循环怎么样?

for (int i = 0; i < 8; ++i)
  TotalSectors |= sector[0x28+i]<<(8*i);

答案 2 :(得分:0)

我认为您已经编写了简单的方法,为什么不简单地将其设为内联函数?