글
Technical Article/펌 2002. 9. 3. 20:21Integer Pack & UnPack...
기능??
32비트 컴파일러에서는 int형이 4바이트를 차지한다.
실제로 정수를 사용할때 이만큼 많은 수가 필요한 경우는 많지않으므로..
압축해서 사용해보자~~
이 소스에서는 16비트 컴파일러를 기준으로 int가 2바이트일때...
low, high가 256이하일때만 비트연산을 통해서 둘을 압축해서 리턴한다!
int IntergerPack(int *nPack, int nHighByte, int nLowByte)
{
int nTmpHigh, nTmpLow;
*nPack = 0;
if ( nHighByte > 255 || nLowByte > 255 )
return FALSE;
nTmpHigh = 0xFF00 & (nHighByte << 8);
nTmpLow = 0x00FF & nLowByte;
*nPack = nTmpHigh | nTmpLow;
return TRUE;
}
int IntergerUnpack(int nPack, int *nHighByte, int *nLowByte)
{
*nHighByte = (nPack & 0xFF00 ) >> 8;
*nLowByte = (nPack & 0x00FF);
return TRUE;
}
32비트 컴파일러에서는 int형이 4바이트를 차지한다.
실제로 정수를 사용할때 이만큼 많은 수가 필요한 경우는 많지않으므로..
압축해서 사용해보자~~
이 소스에서는 16비트 컴파일러를 기준으로 int가 2바이트일때...
low, high가 256이하일때만 비트연산을 통해서 둘을 압축해서 리턴한다!
int IntergerPack(int *nPack, int nHighByte, int nLowByte)
{
int nTmpHigh, nTmpLow;
*nPack = 0;
if ( nHighByte > 255 || nLowByte > 255 )
return FALSE;
nTmpHigh = 0xFF00 & (nHighByte << 8);
nTmpLow = 0x00FF & nLowByte;
*nPack = nTmpHigh | nTmpLow;
return TRUE;
}
int IntergerUnpack(int nPack, int *nHighByte, int *nLowByte)
{
*nHighByte = (nPack & 0xFF00 ) >> 8;
*nLowByte = (nPack & 0x00FF);
return TRUE;
}
![](https://lh3.googleusercontent.com/-hYZb_novCPQ/V5HuGPkGFUI/AAAAAAAAANk/f8zcKkeTBbA1A-W6yuqfk12fs8bd8FeOQCL0B/banner_468_60.png)
RECENT COMMENT