求40bit数据分割为四个10bit数据方法! 100分重奖!

求40bit数据分割为4个10bit数据方法! 100分重奖!!
1001000010 100100000 0100000001 0100000000

如上,40位数据要分割为4个10位数据,求方法。谢谢!

------解决方案--------------------
quint64 data;//低40位存放数据

quint64 bitMask = 0xffffffffff;

quint64 tmpData = data & bitMask;


quint16 result[4];//存放4个10位数据的数组
result[0] = tmpData & 0x3ff;
result[1] = (tmpData >> 10) & 0x3ff;
result[2] = (tmpData >> 20) & 0x3ff;
result[3] = (tmpData >> 30) & 0x3ff;

------解决方案--------------------
基本上就是移位操作,然后再按位 &0x3ff,就行

不过可能要考虑到数据的大小端问题