Yalnızca 0 ve 1’lerden oluşan (“ikili”tam sayı) bir tam sayı girin. (5 veya daha az basamaklı) ve onluk tabandaki karşılığını yazınız.(İpucu: Sağdan sola doğru her seferinde bir tane olacak şekilde ikili sayının basamaklarını almak için kalan ve bölme işlemleri kullanın. En sağdaki basamak değerinin 1 ve sonraki basamak değerinin 10, sonra 100, sonra 1000 vb. olduğu aynı onluk sayı sistemindeki gibi ikili sayı sisteminde, en sağdaki basamak değeri 1’dir, sonraki basamak değeri 2,sonra 4, sonra 8 vb. Bundan dolayı 234 onluk sayısı 4*1+3*10+2*100 şeklinde yorumlanabilir. 1101 ikilik taban sayısının onluk karşılığı 1*1+0*2+1*4+1*8 veya 1+0+4+8 veya 13’tür.)
comments
1 references
// Comments are closed.
#include <iostream>
#include <math.h>
using namespace std;
int main(int argc, const char * argv[]) {
int x;
int a=0;
int sonuc=0;
cout<<“Yalnızca 0 ve 1’lerden oluşan (‘ikili’tam sayı) bir tam sayı girin.”<<endl;
cin>>x;
if (0<=x && x<=11111) {
for(int i=0;0<x;i++){
a=x%10;
if (a==1 || a==0) {
sonuc+=(pow(2,i))*a;
x=x/10;
}
else{
cout<<“Lutfen sadece 0 ve 1 giriniz…”<<endl;
return 0;
}
}
}
else{
cout<<“Istenilen basamak degerlerinde sayi girmediniz…”<<endl;
return 0;
}
cout<<sonuc<<endl;
}