Onluk Sistemdeki Sayıyı İkilik Sisteme Çevirme

Program kullanıcı tarafından girilen onluk sayıyı ikilik sisteme çevirmektedir.

Onluk Sistemden İkilik Sisteme Nasıl Çevirebilirim ?

32 bitlik olarak tanımlanmış onluk sayı sistemindeki sayıyı sayının her bitininin 1 mi 0 mı diye kontrol edilerek bulunabilir.

Sayı 32 bitlik olduğundan dolayı 32 defa dönecek bir döngü yapılır. Bu döngü içerisinde  1 ile ve işlemine sokulur. Bu işlem sonucunda en sağ bitinin (LSB) “1” mi “0” olduğunu öğrenebiliriz. Bunu öğrendikten sonra ister girilen ondalık sayıyı sağa bir bit kaydırır veya 1 sayısını sola bir bit kaydırabiliriz. Bunun yapılmasının nedeni döngü bir sefer döndükten sonra diğer bitin(2.bitin) “1” mi “0” mı olduğunu öğrenmektir. ( Ve bu döngü ile 32 bit için bulunur). Ondalık sayıyı 1 bit sağa kaydırırsak yeni oluşan sayının 1.biti girdiğimiz ondalık sayının 2.biti olacaktır. Bunu 1 ile tekrar ve işlemine soktuğumuzda o anki biti(asıl sayının 2.biti) öğrenebiliriz. Veya 1 sayısı bir bit sola kaydırırsak sayımız artık 2 olacaktır.(Yani 2.biti 1 diğer bitleri 0 ). Sayımız ile 2 sayısının ve işlemine sokarsak sonucunda 2.biti öğrenmiş olabilir. Ve döngü sayesinde bu işlemler tekrarlanarak 32 bitte öğrenebilir.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace OnlukSistemdenIkilikSistemeCevirme
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.Write("Onluk sayıyı giriniz: ");
            int a = Convert.ToInt32(Console.ReadLine());
            int b = 1;
            String tersIkilik = "";
            for (int i = 0; i < 32; i++)
            {
                if ((a & b) == 0)
                    tersIkilik += '0';
                else
                    tersIkilik += '1';
                b = b << 1; // a = a >> 1;
            }



            string ikilik = new string(tersIkilik.Reverse().ToArray());
            Console.WriteLine("Onluk sayı :" + a + "\nİkilik karşılığı:" + ikilik);
            Console.ReadLine();
        }
    }
}
Become a patron at Patreon!

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

This site uses Akismet to reduce spam. Learn how your comment data is processed.

%d blogcu bunu beğendi: