sayı atamak için yardım ?

Başlatan kaypic38, 10 Ocak 2012, 21:06:47

kaypic38

Mesela b'00001000' sayısını 1<<3 şeklinde yazabiliyoruz peki örneğin b'11001110' sayısını nasıl bu sekilde yazabilirim ?
Bir şeyi gerçekten öğrenmek, yapmak istiyorsan o şeyi yapmışsın, öğrenmişsin demektir...

mozkan87

Birazcık mantıksal operatörleri düşünün bakalım. or, and, xor gibi işlemleri düşünün. binary toplama işlemi nedir?

kaypic38

haklısınız sadece "1<<3" yazım şeklini yeni gördüm denedim oldu fakat verdiğim örneği nasıl yapacağımı anlayamadım.
Bir şeyi gerçekten öğrenmek, yapmak istiyorsan o şeyi yapmışsın, öğrenmişsin demektir...

z

Alıntı yapılan: kaypic38 - 10 Ocak 2012, 21:06:47
Mesela b'00001000' sayısını 1<<3 şeklinde yazabiliyoruz peki örneğin b'11001110' sayısını nasıl bu sekilde yazabilirim ?

b'11001110'=103<<1
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

mufitsozen

b'11001110' icin

   1<<7 | 1<<6  | 1<<3 | 1<<2 | 1<<1 diye yazacaksiniz.

En soldaki biti bir yaptiginiz icin degiskeni unsigned diye tanimlamayi unutmayiniz.
Aptalca bir soru yoktur ve hiç kimse soru sormayı bırakana kadar aptal olmaz.

kaypic38

Alıntı yapılan: bunalmis - 10 Ocak 2012, 21:28:52
b'11001110'=103<<1

bunalmıs hocam örneğiniz doğru çalışıyor fakat mantığı anlayamadım acaba izah edermesiniz ?
Bir şeyi gerçekten öğrenmek, yapmak istiyorsan o şeyi yapmışsın, öğrenmişsin demektir...

justice_for_all

#6
103 desiman sayisini binary olarak yazarsak 01100111 sayisini elde ederiz bunu 1 bit kaydirinca sayimiz nolur 11001110

aslinda kaydirma islemleri bolme veya carpmayla esdegerdir sola kaydirma carpma demek saga kaydirma bolme demek tabiki her sayiya bolemezsin2 ve 2nin katlari ile islem yapilir.1 bit kaydirma 2 ile islem yapar 2 kaydirma 4 ile (carpma veya bolme) islem yapar.

mesela baska bir ornek vereyim elde edecegimiz sayinin desiman degeri 200 olsun buda binary olarak 11001000 yapar bunu nasil elde edebiliriz ilk once bu sayi 2,4,8,16 gibi sayilara bolunebiliyormu onu kontrol edin en fazla kaca bolunuyor 200 sayisi 8'e 200/8=25 yapar demekki bizim kaydiracagimiz sayi 25  bir sayiyi 8 ile carpmak demen 3 bit sola kaydirmak demektir yani 200 (11001000) elde etmek icin 25<<3 yapilir.
Deneyip de başaramayanları değil, yalnızca denemeye bile kalkışmayanları yargıla.   Gökhan Arslanbay

kaypic38

Hımm hocam çok teşükkürler bu mantığı anlattığınız çok iyi oldu yazım açısından 25<<3   b'11001000' e göre daha kolay anlaşılması biraz daha zor ama bence daha kullanışlı tekrar teşekkür ederim çok sağolun.
Bir şeyi gerçekten öğrenmek, yapmak istiyorsan o şeyi yapmışsın, öğrenmişsin demektir...