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
acemi C
Bu başlık kilitlidir. Yeni mesajlar gönderilemez veya mevcut mesajlar düzenlenemez.yani sen 50 gircen ve bunu 10101000(atiyorum) gostercek.hmmm, bunun bi formulu 32 ye bolup bisiler yapiyoduk ama tam hatirlamiyorum :(
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 << ' ';
...}
}
#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...