第一种算法:
为什么是Var》=60000,40000,20000,10000,求指教,多谢
| if( Var2 >= 60000 ){ i = 6; Var2 -= 60000; }
if( Var2 >= 40000 ){ i = 4; Var2 -= 40000; }
if( Var2 >= 20000 ){ i = 2; Var2 -= 20000; }
if( Var2 >= 10000 ){ i += 1; Var2 -= 60000; }
DispBuf[4] = i;
if( Var2 >= 8000 ){ i = 8; Var2 -= 8000; }
if( Var2 >= 4000 ){ i = 4; Var2 -= 4000; }
if( Var2 >= 2000 ){ i += 2; Var2 -= 2000; }
if( Var2 >= 1000 ){ i += 1; Var2 -= 1000; }
DispBuf[3] = i;
if( Var2 >= 800 ){ i = 8; Var2 -= 800; }
if( Var2 >= 400 ){ i = 4; Var2 -= 400; }
if( Var2 >= 200 ){ i += 2; Var2 -= 200; }
Var1 = Var2;
if( Var1 >= 100 ){i += 1;Var1 -= 100; }
DispBuf[2] = i;
i = 0;
if( Var1 >= 80 ){i = 8; Var1 -= 80; }
if( Var1 >= 40 ){i = 4; Var1 -= 40; }
if( Var1 >= 20 ){i += 2; Var1 -= 20; }
if( Var1 >= 10 ){i += 1; Var1 -= 10; }
DispBuf[1] = i;
//最后一位为个位
DispBuf[0] = Var1;
第二种算法
tempB+=(~0x64)+1是做什么,求指教
uchar tempA; // 变量保存16位的高8位
uchar tempB; // 变量保存16位的低8位
//怎么求得?
uchar temp1; //变量保存16位数据的个位
uchar temp2; //变量保存16位数据的十位
uchar temp3; //变量保存16位数据的百位
uchar temp4; //变量保存16位数据的千位
uchar temp5; //变量保存16位数据的万位
void calculate(void)
{
temp1=0;
temp2=0;
temp3=0;
temp4=0;
temp5=0;
//10000=0x2710
while(((tempA==0x27)&&(tempB>=0x10))||(tempA>0x27)) //>=10000?
{
if(tempB>=0x10) //-10000
{
tempB-=0x10;
tempA-=0x27;
}
else
{
tempB+=(~0x10)+1;
tempA-=0x27+1;
}
temp5++;
}
//1000=0x03e8
while(((tempA==0x03)&&(tempB>=0xe8))||(tempA>0x03)) //>=1000?
{
if(tempB>=0xe8) //-1000
{
tempB-=0xe8;
tempA-=0x03;
}
else
{
tempB+=(~0xe8)+1;
tempA-=0x03+1;
}
temp4++;
}
//100=0x0064
while(((tempA==0)&&(tempB>=0x64))||(tempA>0)) //>=100?
{
if(tempB>=0x64) //-100
{
tempB-=0x64;
}
else
{
tempB+=(~0x64)+1;
tempA-=1;
}
temp3++;
}
//10=0x0a
while(tempB>=0x0a) //>=10?
{
tempB-=0x0a;
temp2++;
}
//1=0x01
while(tempB>=0x01) //>=1?
{
tempB-=0x01;
temp1++;
}
}
大虾们最好能够详细讲解一下 |