VC-任意进制转换器【数字字符转换未用系统函数】
void CHEXDlg::OnOK() {
long i;
int bit,hex,j,bit2,bit2_temp,k;
int temp[100];
char temp_char[200]={NULL};
i=0;
hex=0;
str="";
GetDlgItem(IDC_EDIT2)->GetWindowText(str);
j=str.GetLength();
for(bit=0;bit<j;bit++)
{
hex=hex+(str[bit]-48)*pow(10,(j-bit-1));
}
if(hex<2) hex=2;//防止出错
GetDlgItem(IDC_EDIT1)->GetWindowText(str);
j=str.GetLength();
for(bit=0;bit<j;bit++)
{
i=i+(str[bit]-48)*pow(10,(j-bit-1));
}
bit=1;//重新记位数
while(i>pow(hex,bit)-1)
{
bit++;
}
j=bit;//记录位数
//分位
while(i!=0)
{
temp[j-1]=i%hex;
i=i/hex;
j--;
}
i=0;
k=0;//记录总长度
bit2_temp=0;
for(j=0;j<bit;j++)
{
bit2=1;//重新记位数
while(temp[j]>pow(10,bit2)-1)
{
bit2++;
}
k=bit2;
if(temp[j]==0)
{
temp_char[bit2_temp+k-1]=48;
}
while(temp[j]!=0)
{
temp_char[bit2_temp+bit2-1]=48+temp[j]%10;
temp[j]=temp[j]/10;
bit2--;
}
temp_char[bit2_temp+k]=',';
bit2_temp=bit2_temp+k+1;
}
temp_char[bit2_temp-1]=NULL;
MessageBox(temp_char,"转换完毕");
}
HEX.rar
(28.38 KB)
[ 本帖最后由 我是菜鸟哦 于 2011-3-7 22:48 编辑 ]