Şimdi Ara

ikilik sistemi onluk sisteme dönüştürmek???

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir (1 Mobil) - 1 Masaüstü1 Mobil
5 sn
20
Cevap
0
Favori
7.441
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
1 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • arkadaşlar bi türlü yazamadım bu programı bana yardımcı olur musunuz? program klavyeden 5 tane sayı alacak (ikilik tabandan)
    ve bu sayının 10luk tabandaki karşılığını ekrana yazdıracak.
    sabahtan beri uğraşıyorum ama yazamadım.... yardımlarınızı bekliyorum şimdiden teşekkürler...



  • beş tane sayı alacak derken 10101 gibi mi yoksa 1 sonra 0 sonra 1 sonra 0 sonra 1 gibi mi alıcak kullanıcıdan sayıları onu bi açarsan
  • 10101 gibi olursa iyi olur çünkü o sayının açılması işlemini bilmiyorum
  • quote:

    Orjinalden alıntı: kurtsutu

    10101 gibi olursa iyi olur çünkü o sayının açılması işlemini bilmiyorum


    hangi dil c mi??
  • evet c de çalışıyorum
  • bi dakka
  • bekliyorum ama bi cevap yok sanırım???
  • Yapay Zeka’dan İlgili Konular
    Daha Fazla Göster
  • abi bu bnm için çok zor iş ya normal sayıyı binary ye çevirmke kolay da bunu bilmiyorum
  • 1010 sayımız olsun. ilk basamaktan baslıyarak, her rakamı, taban sayısınun üssü basamak degeri seklinde carpıp ekliyoruz. sacma bi cümle oldu şöyle anlatayım.

    1 = 1000 ler basamagı, 2 lik tabanda ozaman degeri 1*2 üzeri 3
    0 = 100 ler basamagı, 2 lik tabanda degeri 0*2 üzeri 2
    1 = 10 lar basamagı, 2lik tabanda degeri 1*2 üzeri 1
    0 = 1 ler basamagı, 2 lik tabanda degeri 0*2 üzeri 0

    şimdi bu işlemlerden sonraki tüm degerleri toplarsan 10 luk sistemde bi sayı elde edersin

    programda kullanırken basamak sayısı kadar bir döngü ac, sonra gerekli işlemleri yap, zor değil aslında.
  • tamam dediğinde haklısın aynen o şekilde yazmaya çalıştım , yapmak istediğim şey
    ekrana bi yazıyla kullanıcıdan 5 rakamlı bi sayı istemek 11111 gibi ve bu sayının her basamağını
    1 1 1 1 1 şeklinde vermesini sağlamak.burayı bulabilsem zaten dediğini yapıp 1*2^4 +1*2^3 ....
    şeklinde yazıp bulmak ama sorun 1 1 1 1 1 diye ayıırmak...

    bilmem anlatabildim mi??
  • quote:

    Orjinalden alıntı: kurtsutu

    tamam dediğinde haklısın aynen o şekilde yazmaya çalıştım , yapmak istediğim şey
    ekrana bi yazıyla kullanıcıdan 5 rakamlı bi sayı istemek 11111 gibi ve bu sayının her basamağını
    1 1 1 1 1 şeklinde vermesini sağlamak.burayı bulabilsem zaten dediğini yapıp 1*2^4 +1*2^3 ....
    şeklinde yazıp bulmak ama sorun 1 1 1 1 1 diye ayıırmak...

    bilmem anlatabildim mi??





    eğer sayıları ayrı ayrı alıcaksak kullanıcıdan onu yazmak kolay demiştim ve yazdım .......


    #include <iostream>
    using namespace std;

    int main() {
    int a,b,c,d,e,t,d1,d2,d3,d4,d5;
    cout<<"Enter Your Number in Base 2 (Up to 5 decimals)"<<endl;
    cout<<"Enter Each Decimal Seperatly"<<endl;
    cout<<"Give The First Decimal"<<endl;
    cin>>a;
    cout<<"Give The Second Decimal"<<endl;
    cin>>b;
    cout<<"Give The Second Decimal"<<endl;
    cin>>c;
    cout<<"Give The Fourth Decimal"<<endl;
    cin>>d;
    cout<<"Give The Fifth Decimal"<<endl;
    cin>>e;
    d1=e*1;
    d2=d*2*1;
    d3=c*2*2;
    d4=b*2*2*2;
    d5=a*2*2*2*2;
    t=d1+d2+d3+d4+d5;
    cout<<"Your number in Base 10 ====> "<<t<<endl;
    system("pause");
    return 0;
    }


    İnşallah İşine Yarar ben Dev-c++ kullanıyorum eğer compiler hata bulursa system("pause"); yazan satırı sil ve bidaha dene




  • dostum yaptığın şey için teşekkürler ama sanırım kafanı karıştırdım...ilk anladığın doğruydu yani sayı 5 basamaklı , bitişik olarak girilecek
    benim 1 1 1 1 1 gibi ayrılacak dememin amacı senin de yaptığın programdaki gibi a,b,c,d,e gibi bi hale gelecek ve sonrası yazdığın program gibi
    olacak. sadece başına 5 basamaklı sayıyı ayıran bi kısım lazım
  • quote:

    Orjinalden alıntı: kurtsutu

    dostum yaptığın şey için teşekkürler ama sanırım kafanı karıştırdım...ilk anladığın doğruydu yani sayı 5 basamaklı , bitişik olarak girilecek
    benim 1 1 1 1 1 gibi ayrılacak dememin amacı senin de yaptığın programdaki gibi a,b,c,d,e gibi bi hale gelecek ve sonrası yazdığın program gibi
    olacak. sadece başına 5 basamaklı sayıyı ayıran bi kısım lazım


    mod işlemini kullanarak yapabilirsin.

    mesela sayı

    10101
    mod 10 = 1

    sonra 10 a böl, ve aşağıya yuvarla sayıyı (1010,1 --> 1010)
    mod 10 = 0

    ...


    mod10 dan elde ettiğin sayılar sana her bir basamaktaki sayıyı vercek.


    2. bir yol daha var
    kullanıcıdan sayıyı string olarak al.

    string in uzunluğun belirle. ona göre for döngüsü oluştur. ve her bir karakteri sayıya çevir




  • bilader şu programa bir bak.üni 1 de yapmıştım. işine yararsa kodları gönderirim.yanlız delphi ile yapılmış.
    http://rapidshare.com/files/5888749/Project1.rar.html
  • "HITM@N " Dostum bende okulda üst sınıftaki bir kaç arkadaşa sordum onlarda bana string le yapılacağını söylediler ama il mesajlarımda da söyledim o olay benim bilgimi aşıyo string yapısını nasıl kullanıldığını daha bilmiyorum ...... ama araştırmaya devam ediyorum bakalım yapabilecekmiyim ....
  • #include<stdio.h>
    #include<conio.h>

    main()
    {
    int sayi=0;
    int bas1,bas2,bas3,bas4,bas5;
    int sonuc=0;

    scanf("%d",sayi);

    bas1=sayi % 10;
    bas2=sayi%100;
    bas2-=bas1;
    bas3=sayi%1000;
    bas3=bas3-(bas1+bas2);
    bas4=sayi%10000;
    bas4=bas4-(bas1+bas2+bas3);
    bas5=sayi-(bas1+bas2+bas3+bas4);

    sonuc=(bas1)+(bas2*0.2)+(bas3*0.04)+(bas4*0.008)+(bas5*0.0016);

    printf(" %d ikilik sayisinin 10 luk karşılığı %d dir... ",sayi,sonuc);

    getch();

    }


    tabi bu sadece 5 basamaklı 2 lik sayi için daha fazla veya
    istenildiği kadar gibi durumlarda farklı şeyler düşünülüp bulunabilir...



    < Bu mesaj bu kişi tarafından değiştirildi The_J@ck@l -- 4 Aralık 2006; 22:55:54 >
  • quote:

    Orjinalden alıntı: The_J@ck@l

    #include<stdio.h>
    #include<conio.h>

    main()
    {
    int sayi=0;
    int bas1,bas2,bas3,bas4,bas5;
    int sonuc=0;

    scanf("%d",sayi);

    bas1=sayi % 10;
    bas2=sayi%100;
    bas2-=bas1;
    bas3=sayi%1000;
    bas3=bas3-(bas1+bas2);
    bas4=sayi%10000;
    bas4=bas4-(bas1+bas2+bas3);
    bas5=sayi-(bas1+bas2+bas3+bas4);

    sonuc=(bas1)+(bas2*0.2)+(bas3*0.02)+(bas4*0.002)+(bas5*0.0002);

    printf(" %d ikilik sayisinin 10 luk karşılığı %d dir... ",sayi,sonuc);

    getch();

    }


    tabi bu sadece 5 basamaklı 2 lik sayi için daha fazla veya
    istenildiği kadar gibi durumlarda farklı şeyler düşünülüp bulunabilir...


    kullandığın yöntemi biraz anlatabilir misin bide bunlar c kodları c++ biraz farklı aynı mantıkla bunu c++ sa nasıl çevirebiliriz




  • Arkadaşlar biyeri yanlış yazmışım düzelttim tekrar bakın...

    örneğin 11011 binary sayı girildi giyelim
    basamak 1 için mod 10 a göre aldımızda ilk sayıyı 1 bulmuş oluruz burası ok galiba

    basamak 2 için mod 100 göre aldığımızda 11 sayısı elimizde olur tabi bunlar hep int normal ondalık sayılar olarak işlem yapıyoruz
    11 den ilk basamağı çıkardığımızda yani 11-1 = 10 olur bu 2. basamak olduğu için eğer 0.2 ile çarparsak elimizde 2 olur buda ok

    basamak 3 içinse mod 1000 e göre alırız elimizde 011 onluk sayısı olur bunda birinci ve ikinci sayıları çıkarırsak yani 011 - (10+1) = 0 olur bunuda 0.04 ile çarparsak aslında 2 lik sayının 3. basamağını 2^2 ile yani 4 ile çarpmış oluruz. sonuç 0 olduğu için etki etmiyor.

    diğer basamaklarda aynen öyle gidiyor yani bir basamak için o basamağa kadar mod alırız ve alt basamakları çıkarırsak elimizde örneğin ya 10000 yada 00000 onluk sayısı olur bunuda 0,0016 ile çarparsak ya 16 yada 0 elde ederiz ok sonrada bütün sonuçları toplarsak girilen binary sayının onluk tabandaki karşılığını bulmuş oluruz...

    c++ için işlemler aynı sadece giriş ve ekrana yazma fonk larını değiştircen ok...

    umarım anlatabilmişimdir.....




  • yalnızca 2 gündür c++ çalışıyorum c falan bilmiyorum direk c++ dan başladım o yüzden bir takım yanlışlar olabilir ama çalıştı

    #include <stdlib.h> 
    #include <iostream>
    #include <string>

    using namespace std;

    int main()
    {
    string sayi = "";
    int toplam;
    cout<<"Binary sayiyi girin"<<endl;
    cin>>sayi;

    toplam = 0;

    if((sayi[0] == '1'))
    toplam = toplam + 16;


    if((sayi[1] == '1'))
    toplam = toplam + 8;


    if((sayi[2] == '1'))
    toplam = toplam + 4;

    if((sayi[3] == '1'))
    toplam = toplam + 2;

    if((sayi[4] == '1'))
    toplam = toplam + 1;


    cout <<"Onluk Sistem Karsiligi= "<< toplam <<endl;


    system("PAUSE");
    return 0;
    }




  • cevap yazan tüm arkadaşlara teşekkürler
    kusura bakmayın dersler vizeler derken ancak bakabildim pazar gününden beri
    çözümü görünce gerçekten kolay geldi ben soruyu yanlış yönden çözmeye çalışmışım tekrar teşekkürler....
  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.