按位取值(移位运算符)

1.

 按位取时间字段中的 年、月、日、时、分

int year = src.RtMin_time >> 20;
int month = src.RtMin_time >> 16 & 0xF;
int day = src.RtMin_time >> 11 & 0x1F;
int hour = src.RtMin_time >> 6 & 0x1F;
int minute = src.RtMin_time & 0x3F;

十六进制1位和二进制的4位相对应(如:十六进制 0xF 对应二进制 1111  参见:https://blog.csdn.net/lvhaoguang0/article/details/81004638

参见:https://blog.csdn.net/Kellery/article/details/73454687

 

2.

int SpliceFupanType(const unsigned char  btHigh, const unsigned char  btSubHigh, const short nLow)
{
	int nHigh = ((int)btHigh) << 24;
	int nSubHigh = ((int)btSubHigh) << 16;
	return nHigh + nSubHigh + nLow;
}

void SplitFupanType(const int nType, unsigned char&  btHigh, unsigned char&  btSubHigh, short& nLow)
{
	btHigh = (unsigned char)(nType >> 24);
	btSubHigh = (unsigned char)((nType >> 16) & 0xFF);
	nLow = (short)(nType & 0xFFFF);
}

 

posted @ 2019-09-16 17:23  那一剑的風情  阅读(1394)  评论(0)    收藏  举报