float类型的运算和位运算

为什么是移动7位,还有他们是怎样加起来的,,,,,,,,求大神指点,,,,,,,,

#include
using namespace std;
void cir(float &x,unsigned int t)
{
short pint=(short)&x;
pint[1]=(t<<7)+pint[1];//就是这行不太懂
}
int main()
{
float x=1.12;
cir(x,2);

}

求回答,,,,,,,,

你得说明白你的函数要做什么。还有你的代码在我这里不能编译
Line 5: error: cast from 'float*' to 'short int' loses precision