long tmp = 32; 如何获取tmp的前8位字节

来源:百度知道 编辑:UC知道 时间:2024/05/31 22:51:48
以及接着的8位字节,再接着的8位字节,最后8位字节

tmp的前8位bit : tmp & 0xFF000000 (高位)
接着的8位bit : tmp & 0x00FF0000
再接着的8位bit : tmp & 0x0000FF00
最后8位bit : tmp & 0x000000FF (底位)

ls的应该都对吧,都是高手,没试过,,
还有一种方法,用C语言的指针,,,,,,

#include "stdio.h"
#include "iostream"
#include "windows.h"

long tmp = 32; // tmp = 0x00000020
// tmp 在内存中的结构为:20 00 00 00

BYTE* BYTE_PTR_tmp = (BYTE*)(&tmp);

void main()
{
for( int I = 0; I < 4; I++ )
{
printf( "%08X %02X \r\n", BYTE_PTR_tmp+I, *(BYTE_PTR_tmp+I) );
}

int Wait;
std::cin >> Wait;
}

b=~0;(b=1111...1111)
b>>=8;
b<<=8;(b=111...1100000000);
b=~b;(b=00...0011111111);
这时你用:
b&tmp;(就可以得到最后8位)
b&(tmp>>8)(中8位)
b&(tmp>>16);(前8位)

你问的是不这个嘛?