PDA

View Full Version : تبدیل مبنا در پایه 16



aapalireza
پنج شنبه 20 خرداد 1389, 12:56 عصر
سلام
من برنامه ی تبدیل مبنا از مبنای 16 به (2و8و10) و بر عکس را می خواهم.
اگر کسی این نمونه کد را دارد لطف کند و بدهد.

ممنون

میلاد قاضی پور
پنج شنبه 20 خرداد 1389, 15:48 عصر
http://msdn.microsoft.com/en-us/library/bb311038.aspx
http://stackoverflow.com/questions/923771/quickest-way-to-convert-a-base-10-number-to-any-base-in-net

aapalireza
جمعه 21 خرداد 1389, 12:08 عصر
اگه می شه اینجوری کمکم کنید!
من کدی که با c نوشتم را می گذارم /
می خواهم آن را به C#‎ تبدیل کنید به صورتی که یک textbox با همان فرمت پیش فرض string داشته باشد و 4 تا radioButton (با نام های 2 - 8 - 10 - 16 )
که اگر آن ها را زدیم عدد آن ها را به آن مبنا ببرد.

بسیار متشکر و ممنون.






//>>Alireza Akhavan Pour
//>>WWW.ALIREZAWEB.COM
#include<conio.h>
#include<stdio.h>
#include<math.h>
int a,b;
void ali(void){
int i=-1,j,adad2[100];
char adad1[100],c;
long int num1=0,num2=0;
printf("Enter the number: ");
scanf("%c",&c);
do{
i++;
scanf("%c",&adad1[i]);
} while(adad1[i]!='\n');


j=i-1;
for(i=j;i>=0;i--){ //converts the base to 10.
if(adad1[i]<='9'&& adad1[i]>='0'){
num1+=((long int)pow((float)a,(j-i)))*(((int)adad1[i])-48); //bara tabdile kode ascii be adad
}
else if(adad1[i]<='Z'&&adad1[i]>='A'){
num1+=((long int)pow((float)a,(j-i)))*(((int)adad1[i])-55);
}
else if(adad1[i]<='z'&&adad1[i]>='a'){
num1+=((long int)pow((float)a,(j-i)))*(((int)adad1[i])-87);
}
}
i=0;
while(num1>=b){ //converts the base to b. (START)
adad2[i]=num1%b;
i++;
num1/=b;
}
adad2[i]=num1; //converts the base to b. (END)
printf("\nResult: ");
for(;i>=0;i--){ //prints the result.
if(adad2[i]<=9&&adad2[i]>=0){
printf("%d",adad2[i]);
}
else if(adad2[i]>=10&&adad2[i]<=35){
printf("%c",(char)(adad2[i]+55));
}
}
}
void main(void) {
printf("Enter current base: ");
scanf("%d",&a);
printf("Enter desired base: ");
scanf("%d",&b);
ali();
getch();
}

Open-Source
جمعه 21 خرداد 1389, 12:14 عصر
اینم یه نمونه برنامه.
:لبخندساده: