欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標(biāo)題:
unsigned int to BCD 自己想的,但是效率還是比頂尖高手慢一半
[打印本頁]
作者:
wudawei
時間:
2014-12-31 00:03
標(biāo)題:
unsigned int to BCD 自己想的,但是效率還是比頂尖高手慢一半
約160個周期,頂尖高手的才70多個周期。(最后附)
/* unsigned char temp;
D1=D2=D3=D4=D5=0;
temp=((unsigned char *)&value)[0];
if(temp&0x80){D1+=3;D2+=2;D3+=7;D4+=6;D5+=8;}
if(temp&0x40){D1+=1;D2+=6;D3+=3;D4+=8;D5+=4;}
if(temp&0x20){D2+=8;D3+=1;D4+=9;D5+=2;}
if(temp&0x10){D2+=4;D3+=0;D4+=9;D5+=6;}
if(temp&0x08){D2+=2;D3+=0;D4+=4;D5+=8;}
if(temp&0x04){D2+=1;D3+=0;D4+=2;D5+=4;}
if(temp&0x02){D3+=5;D4+=1;D5+=2;}
if(temp&0x01){D3+=2;D4+=5;D5+=6;}
temp=((unsigned char *)&value)[1];
if(temp&0x80){D3+=1;D4+=2;D5+=8;}
if(temp&0x40){D4+=6;D5+=4;}
if(temp&0x20){D4+=3;D5+=2;}
if(temp&0x10){D4+=1;D5+=6;}
if(temp&0x08){D5+=8;}
if(temp&0x04){D5+=4;}
if(temp&0x02){D5+=2;}
if(temp&0x01){D5+=1;}
/* while(D5>=10){D5-=10;D4++;}
while(D4>=10){D4-=10;D3++;}
while(D3>=10){D3-=10;D2++;}
while(D2>=10){D2-=10;D1++;}
if(D5>=10){D4+=D5/10;D5=D5%10;}
if(D4>=10){D3+=D4/10;D4=D4%10;}
if(D3>=10){D2+=D3/10;D3=D3%10;}
if(D2>=10){D1+=D2/10;D2=D2%10;}
while(value>=1000){D1++;value=value-1000;}
while(value>=100){D2++;value=value-100;}
while(value>=10){D3++;value=value-10;}
D4=value;*/
這個才70多周期
void show_value(unsigned int x)
{
unsigned char i,j,k; //臨時變量
k = x;
x = x >> 2;
i = x >> 8;
j = (i + i + i) << 1;
if (i > 41)
{
i++;
j+=6;
}
j = j + x;
if ((unsigned char)x > j )
{
i++;
j+=6;
}
if (j > 249)
{
i++;
j+=6;
}
D1 = i / 10; //分離得到的萬(10000)位
D2 = B; //分離得到的千(1000)位
D3 = j / 25; //分離得到的百(100)位
D4 = (B<<2 | k&3) / 10; //分離得到的十(10)位
D5 = B; //分離得到的個(1)位
}
復(fù)制代碼
歡迎光臨 (http://www.raoushi.com/bbs/)
Powered by Discuz! X3.1