1. sayfa
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 |
hangi dil c mi?? |
bi dakka |
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?? |
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 |
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... |
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> |
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.... |
1. sayfa
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 Ol Şimdi DeğilÜ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.