Всем здрасте)) Помогите, пожааалуйста. В общем дело в том, что надо написать код для перевода из десятичной в двоичную систему и обратно для типов char, int, long int, unsigned int, unsigned long int . Для long int я код написала, для остального - по аналогии. Проблема в обратном переводе из двоичной в десятичную: когда дописываю нужную часть, сразу неправильно начинает работать первая половина задания а вторая вообще не выводится...я уже не знаю что и делать то... вот код, посмотрите пожалуйста:
| Код | #include<iostream.h> #include<math.h> #include<conio.h> #include<stdlib.h> #include<stdio.h> #include<string.h>
void main(void) {long a=0, bb=0; char str[63]; int i=0,k,tmp=0; clrscr(); cout<<"‚ўҐ¤ЁвҐ зЁб«®: "; cin>>a; bb=a; while (bb!=0) {if ((abs(bb)%2)!=0) str[i]='1'; else str[i]='0'; ++i; bb=abs(bb)/2; };
cout<<"—Ёб«® ў ¤ў®Ёз®© бЁб⥬Ґ бзЁб«ҐЁп: " ; for ( k=0;k<=63;k++) if(str[k]!='1') str[k]='0'; strrev(str); cout<<endl;
if (a<0) {for ( k=0;k<=63;k++) {if (str[k]!='1') str[k]='1'; else str[k]='0';};
for (i=63;i>=0;i--) {if (str[i]=='1') str[i]='0'; else {str[i]='1'; break;}} } cout<<str<<endl; getchar(); tmp=0; for(i=63,k=0;i>=0;i--,k++) tmp=tmp+str[i]*pow(2,k); cout<<"‚ ¤ҐбпвЁз®© бЁб⥬Ґ бзЁб«ҐЁп: "<<tmp; getchar();
}
|
да и еще...кто знает как это все под чаровский тип сделать? |