?? main.c
字號:
#include "stdio.h"
#include "stdlib.h"
#include "time.h"
#include "winsock.h"
#include "direct.h"
#include "tlhelp32.h"
#include "winuser.h"
int Muti(int Num,int time)
{
int ret=1;
while ((time--)>0)
{
ret*=Num;
}
return ret;
}
int CharToValue(char ch)
{
if ((ch<='9')&&(ch>='0'))
{
return ch-'0';
}
else if ((ch<='z')&&(ch>='a'))
{
return (ch-'a')+10;
}
else if ((ch<='Z')&&(ch>='A'))
{
return (ch-'A')+10;
}
return -1;
}
int ValueToChar(int value)
{
if ((value>=0)&&(value<=9))
return value+'0';
if ((value>9)&&(value<36) )
{
return (value-10)+'a';
}
return -1;
}
int NumChange(char* pSNum,int stype,char* pDNum,int dtype)
{
int slen,dlen,len;
int tt,pp,Num=0;
int last;
char ss[4],ch,*pH,*pL;
if (!pSNum||!pDNum||(stype<2)||(stype>35)||(dtype<2)||(dtype>35))
return 0;
pH=pL=NULL;
slen = strlen(pSNum);
dlen = strlen(pDNum);
//原進制和目的進制一制,直接拷貝
if (stype==dtype)
{
strcpy(pDNum,pSNum);
return 1;
}
//都轉化為10進制
while (*pSNum)
{
pp = CharToValue(*pSNum);
if ((pp>=stype)||(pp<0))
return 0;
slen--;
tt = Muti(stype,slen);
Num+= pp*tt;
pSNum++;
}
//轉化為目的進制
sprintf(pDNum,"");
while (Num>0)
{
last=Num%dtype;
Num/=dtype;
ch = ValueToChar(last);
if (ch<0)
return 0;
sprintf(ss,"%c",ch);
strcat(pDNum,ss);
}
//反串
len = strlen(pDNum);
len--;
pH = pDNum;
pL = pDNum+len;
while (pH<pL)
{
ch = (*pH);
(*pH) = (*pL);
(*pL) = ch;
pH++;
pL--;
}
return 1;
}
int main()
{
char ss[32]={""};
char dd[32]={""};
int i,tt,pp,ww,ww1,ww2;
int cc;
int pl[100];
memset(pl,0,sizeof(pl));
ww=ww1=ww2=0;
ww1=clock();
for(i=0;i<100000;i++)
{
sprintf(ss,"%d",i);
tt = clock();
NumChange(ss,10,dd,2);
pp = clock();
printf("ss=%s,\t\tdd=%s\t\n",ss,dd);
cc = pp-tt;
pl[cc]++;
}
ww2=clock();
ww=ww2-ww1;
return 1;
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -