İkilik sistemi onluğa çeviren C++ programı

Katılım
18 Kasım 2016
Mesajlar
540
Makaleler
1
Arkadaşlar selamlar, ödevim için yardım edebilir misiniz? Sabahtan beri aklıma bir şey gelmiyor bu konuda. 10'luk sistemi 2'lik binarye çevirmek neyse de tam tersini yapabilen bir kod yazamıyorum. Örneğin binaryde 3 olan sayıyı 10 olarak yazdırmam gerekiyor. Şimdiden yardımlarınız için teşekkür ederim.
 
Bu kadar hazırcı olmasan dostum? Önce bir kağıt kalem al eline. Bu işlemleri yaparken yaptığın işlemleri bul. Algoritmasını çıkar. Sonra yaz kodunu. Onu da yapamam diyorsan Binary to Decimal c++ diye ara. Zibilyon tane kod bulursun zaten. Bak mesela bir tanesi:

Dipnot: Bu kod çok temel bir kod. Tahminimce yazılım ya da bilgisayar mühendisliği okuyorsun. İstediğin kadar öğren eğer algoritma kurma adımını yapamıyorsan bu işi unut sen. Kodlama dillerini öğrenmen sadece eline malzeme verir. O malzemelerden nasıl yemek yapacağını bilmezsen hiçbir şey yapamazsın. Böyle basit algoritmaları bile yazamıyorsan kendini bir gözden geçir.
 
Son düzenleyen: Moderatör:
10'luk sistemi 2'lik binarye çevirmek neyse de tam tersini yapabilen bir kod yazamıyorum.
Aklıma gelen ilk yöntem buydu. Dolusuyla yapılabilir.
8 yerine global const int falan tanımlarsan o da olur. Bit sayısı. Array gibi bir şeyde tuttuğu için compile zamanda bilinmesi lazım.
Bitset senin yapabildiğini de pek uğraştırmadan yapabilmeyi sağlıyor.

Kod:
#include <iostream>
#include <string>
#include <bitset>

int main() {
    auto num{ 0 };
    std::cout << "enter a binary number: ";
    std::cin >> num;

    std::bitset<8> bs{ std::to_string(num) };
 
    std::cout << "decimal: " << bs.to_ulong() << "\n";
}
Kod:
#include <iostream>
#include <string>
#include <bitset>

int main() {
    unsigned char num{ 0 };
    std::cout << "enter a decimal number: ";
    std::cin >> num;

    std::bitset<8> bs{ num };
    
    std::cout << "binary: " << bs.to_string() << "\n";
}
 
Son düzenleme:
Vay vay vay, hazırcı olmasaymışım. İnsanların programlarını yazarken hangi mantıkta yazdığını kavramaya çalışıyorum. Başlığı açma sebebim de o zaten. İkiliği onluğa çevirmeyi kağıt üstünde yapabilsem zaten buraya böyle bir başlık açmazdım. Onluğu ikiye kağıt üstünde çevirebildiğim için yapabildiğimi yazdım, ilk sorunun mantığını kavrayamıyordum. Bir çözüme giden bir . (nokta) bile insanlara farklı bir bakış açısı kazandırabiliyor, başka insanlara nasıl düşündüğünü öğretip nasıl çözüme gittiğini göstermek yerine böyle ukalaca yorumlar yapma.
Ek olarak belirteyim intihal yapmak olduğu için buradaki başkasına ait olan bir şeyi indirip ödev olarak da hiçbir zaman yüklemedim.
 
Ne kadar ezberden konuşuyorsun öyle sen Bak bakayım konuda ne istemişsin? Eğer amacın konu öğrenmek ise YouTube'da bu konuyu anlatan çokça video var. Ama ben bu konuda bana mantığını anlatın cümlesinden çok yapamıyorum yardım edin tarzı bir cümle anladım. Daha çok uğraşmak istemiyorum beni kurtarın tarzı. Çünkü konuda bir başlangıç yok. Tam olarak zorlandığın noktayı belirtmemişsin. Son olarak başkasının kodunu kullanmam demişsin. Henüz bu işin acemiliğinde olmana veriyorum. O kodu olduğu gibi kullanman için atmadım. Kodu analiz edip üzerine ilaveler yapmak senin yapman gereken
 
Senin anlamanda bir sorun varsa ben ne yapayım? Yardım istiyorum dedim. Youtube yerine canım buradaki insanlarla iletişim halinde öğrenmeyi seçtiysem ne yapayım? Ondan ikiye geçiyorum ikiden ona geçemiyorum yazmışım, nerde takılmış olabilirim acaba sence? Bu yazıda böyle hazır bir kod isteyip işin içinden sıyrılmak istediğimi kendi aklınca bana laf yetiştirmek için saçma sapan yerlere yorman çok komik. Benim acemliğime vereceğime git akademik intihalin sonuçları nedir ve neden etik değildir onu araştır. Üstüne bir şey ilave et de öyle ver sen.
 
Aynen kanka akademik inthal. O kodu yazabileceğin 100 tane algoritma var zaten Youtubeden izlemek yerine de buraya soruyormuşsun. Çünkü çok farklı şeyler öğretecekler sana Gayet de hazırcısın. Gayet de yapamıyorum diyip sıyrılıyorsun. Eğer hazırcı değilsen 10luk tabandan ikilik tabana çeviren kodun nerde? Yapabiliyormuşsun ya hani
 
Son derece açık söylüyorum bu mantıkla devam etmeyi düşünüyorsan gelecekte kendinden yazılım alanında çok şey bekleme.

Bir program yazmanın en az %50 si google dan onun nasıl yapıldığını araştırmaktır.
 
Hocam arkadaşa da onu diyorum zaten. Araştır diyorum. Bu kod çok temel bir kod. Ve algoritması gayet basit. En azından bu seviyede hazır kodları düzenleyerek başlayabilir. Kimse başlangıç aşamasında sıfırdan yepyeni bir kod yazmasını beklemiyor arkadaştan. Algoritma bilgisini kavraması için verilen bir alıştırma bu. Sana yepyeni bir kod yaz demiyor. Hangi kodu nerede kullanacağını bil diyor. Buyrun 1. sınıfta yüzyüze eğitimde hiç de basit olmayan sınavlarda aldığım not. Dediğiniz gibi ezberci olsaydım kod ezberlerdim. Sınıf ortalamasının 40-50 olduğu (sınıfımız 30 kişi idi) dersi 91 ile tek AA veren bendim. Çünkü arkadaşlarım gibi kod ezberlemedim. Kodları hep hazır kullandım. Ama hangi kodu nereye yazacağımı hep bildim
 
Bu siteyi kullanmak için çerezler gereklidir. Siteyi kullanmaya devam etmek için çerezleri kabul etmelisiniz. Daha Fazlasını Öğren.…