Arama butonu
Bu konudaki kullanıcılar: 1 misafir
19
Cevap
7442
Tıklama
1
Öne Çıkarma
ikilik sistemi onluk sisteme dönüştürmek???
K
19 yıl
Yüzbaşı
Konu Sahibi

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...

DH forumlarında vakit geçirmekten keyif alıyor gibisin ancak giriş yapmadığını görüyoruz.

Üye olduğunda özel mesaj gönderebilir, beğendiğin konuları favorilerine ekleyip takibe alabilir ve daha önce gezdiğin konulara hızlıca erişebilirsin.

Üye Ol Şimdi Değil



O
19 yıl
Yüzbaşı

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


Bu mesaja 1 cevap geldi.
K
19 yıl
Yüzbaşı
Konu Sahibi

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


Bu mesaja 1 cevap geldi.
K
19 yıl
Onbaşı

quote:

Orjinalden alıntı: kurtsutu

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


hangi dil c mi??


Bu mesaja 1 cevap geldi.
K
19 yıl
Yüzbaşı
Konu Sahibi

K
19 yıl
Onbaşı

bi dakka



K
19 yıl
Yüzbaşı
Konu Sahibi

bekliyorum ama bi cevap yok sanırım???


Bu mesaja 1 cevap geldi.
O
19 yıl
Yüzbaşı

abi bu bnm için çok zor iş ya normal sayıyı binary ye çevirmke kolay da bunu bilmiyorum


Bu mesaja 1 cevap geldi.
A
19 yıl
Yüzbaşı

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.



K
19 yıl
Yüzbaşı
Konu Sahibi

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??


Bu mesaja 1 cevap geldi.
O
19 yıl
Yüzbaşı

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


Bu mesaja 1 cevap geldi.
K
19 yıl
Yüzbaşı
Konu Sahibi

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


Bu mesaja 1 cevap geldi.
H
19 yıl
Yarbay

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


Bu mesaja 1 cevap geldi.
D
19 yıl
Çavuş

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


Bu mesaja 1 cevap geldi.
O
19 yıl
Yüzbaşı

"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 ....


Bu mesaja 1 cevap geldi.
T
19 yıl
Teğmen

#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 >
Bu mesaja 1 cevap geldi.
O
19 yıl
Yüzbaşı

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


Bu mesaja 1 cevap geldi.
T
19 yıl
Teğmen

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.....


Bu mesaja 1 cevap geldi.
T
19 yıl
Yarbay

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;
}



K
19 yıl
Yüzbaşı
Konu Sahibi

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....



DH Mobil uygulaması ile devam edin. Mobil tarayıcınız ile mümkün olanların yanı sıra, birçok yeni ve faydalı özelliğe erişin. Gizle ve güncelleme çıkana kadar tekrar gösterme.