acemi C

Bu başlık kilitlidir. Yeni mesajlar gönderilemez veya mevcut mesajlar düzenlenemez.
yusufemir
05-03-2006, 12:15   |  #1  
OP Taze Üye
Teşekkür Sayısı: 0
2 mesaj
Kayıt Tarihi:Kayıt: Mar 2006

girilen onluk sayının 8 bit ile ikili karşılığını veren programa ihtiyacım var
örneğin 3 giricem ekranda 00000011 gösterecek

Son Düzenleme: yusufemir ~ 12 Mart 2006 15:42
gmax136
05-03-2006, 16:29   |  #2  
Yıllanmış Üye
Teşekkür Sayısı: 0
108 mesaj
Kayıt Tarihi:Kayıt: Mar 2005

yani sen 50 gircen ve bunu 10101000(atiyorum) gostercek.hmmm, bunun bi formulu 32 ye bolup bisiler yapiyoduk ama tam hatirlamiyorum :(

nepaizen
18-03-2006, 22:05   |  #3  
Yeni Üye
Teşekkür Sayısı: 0
24 mesaj
Kayıt Tarihi:Kayıt: Mar 2006

bunu yapmanın tek yolu bitwise and operatörüyle ikinin katları (her bit basamığı) olan sayıyla sonuç çıkarmandın:

sana örnek bi kod yazayım:

void show_binary(unsigned char byte) {
unsigned char bit = 1 << 7;
...for(unsigned int i=0; i < 8; i++, bit >>= 1) {
......std::cout << ((bool)byte&bit << ' ';
...}
}

Son Düzenleme: nepaizen ~ 18 Mart 2006 22:07
gdumanli
19-03-2006, 10:14   |  #4  
Taze Üye
Teşekkür Sayısı: 0
4 mesaj
Kayıt Tarihi:Kayıt: Mar 2006

#include <stdlib.h>
        #include <stdio.h>
        #include <math.h>

        int main ()
        {
                int sayi, taban1, taban2;
                   int r1, r2, i;

                   // Algoritma 2 - 10 arasındaki tabanlarda bulunan bir sayıyı, yine
                   // aynı aralıkda, başka bir tabandaki sayıya çeviriyor.

                   printf (" Sayi       : ");
                   scanf  ("%d", &sayi);

                   printf (" Taban      : ");
                   scanf  ("%d", &taban1);

                   printf (" Yeni taban : ");
                   scanf  ("%d", &taban2);

                   r1 = i = 0;

                   // Sayı ilk olarak onluk tabana çevriliyor. (sayi % 10) bize
                   // sayinin son rakamini verir. while içerisinde sayı üzerinde
                   // sağdan sola doğru ilerleniyor ve ulaşılan her rakam uygun
                   // katsayıyla çarpılarak verilen sayı onluk tabana çevriliyor.
                   // Bu uygun katsayılar, örneğin 3 tabanı için 1, 3, 9, 27 ...
                   // şeklindedir.

                   while (sayi != 0)
                   {
                           r1 += (sayi % 10) * (int) pow (taban1, i);

                           sayi /= 10;

                           i ++;
                   }

                   i = 0;

                   // Aşağıdaki while ile yeni oluşacak sayının kaç basamaklı
                   // olduğu bilgisi elde ediliyor.

                   while (r1 > pow (taban2, i)) i ++;

                   printf (" Yeni  sayi : ");

                   // Orjinal tabanından onluk tabana çevrilmiş sayı, artık yeni
                   // tabana çevrilmek için hazır. Yeni sayının soldan sağa doğru
                   // rakamları tek tek elde ediliyor.

                   while (i > 0)
                   {
                           r2 = r1 / (int) pow (taban2, i - 1);

                           r1 -= r2 * (int) pow (taban2, i - 1);

                           printf ("%d", r2);

                           i --;
                   }

                   printf ("\n\n");

                   return 0;
        }
       
        /*************************************************************************

         OUTPUT:
         ------
         Sayi       : 567
         Taban      : 8
         Yeni taban : 2
         Yeni  sayi : 101110111

        *************************************************************************/
al dostum kimse bana yardımcı olmuyor bari ben olayım...