@blackw00d
0 / 0 / 0
Регистрация: 29.09.2008
Сообщений: 9
|
09.12.2008, 16:14
|
|
вот те готовая программа
Код
#include<math.h>
#include<conio.h>
#include<stdlib.h>
#include<stdio.h>
#include<string.h>
void main(void){
long int a,bb;
char str[65];
int i,k,v,tmp;
int N=65;
while(1){
clrscr();
printf("perevod iz 10 v 2 - 0\n"); //menu
printf("perevod iz 2 v 10 - 1\n");
printf("exit - 2\n");
scanf("%i",&v);
switch(v){
case 0:{ //perevod iz desytichnoi v dvoichnuy
printf("Vvedi chislo: ");
scanf("%li",&a);
for (i=0;i<N-1;++i) str[i]='0'; //zapolnenie stroki 0
str[N-1]='\0';
bb=a;
i=0;
while (bb!=0){
if ((abs(bb)%2)!=0) str[N-2-i]='1'; //esli ne delitsy na chelo zapisyvaem 1
++i;
bb=abs(bb)/2; //delim chuslo popolam
}
printf("V dvoichnoi: \n");
printf("%s\n",str); //vyvod poluchenogo chisla
getch();
break;
}
case 1:{ //perevod iz dvoichnoi v desytichnoi
printf("Vvedi chislo: ");
scanf("%li",&a);
tmp=0;
for (i=N-1;i>=0;i--){
tmp+=(a%10)*pow(2,N-1-i); //chislo stoychoe na N-1-i meste umnogaetsy na 2 v stepeni ego pozichii
a=a/10;
}
printf("V desytichnoi: \n");
printf("%i",tmp); //vyvod poluchenogo chisla
getch();
break;
}
case 2:{
exit(1);
}
default:{
printf("Vybran ne vernoe deistvie");
getch();
break;
}
}
}
}
0
|