Haberler:

Foruma Resim Yükleme ve Boyut Sınırlaması ( ! )  https://bit.ly/2GMFb8H

Ana Menü

değişkenler

Başlatan styx75, 11 Mayıs 2017, 14:00:52

styx75

selam arkadaşlar..ccs c ye yeni başladım sayılır.sorum ise örneğin float tipinde "evrensel" isimli bir değişken oluşturduk ve buna 32 bitlik bir sayı atadık,bu sayının düşük değerli ilk 4 bitini başka bir değişkene nasıl atayabiliriz..
yada sonraki 4 bitini.
saygılar.

vitruvius

Float'i lafin gelisi mi soyledin? Sayiin kac mesela?

styx75

evet lafın gelişi..mesala 1822 gibi.

vitruvius

O zaman float gerekli degilmis. Yapmak istedigin sey icin bit operatoru AND (&) kullanarak maskeleme yapacaksin. Sen son dort biti almak istiyorsun. Bunun icin de maskendeki sayinin son 4 biti 1, kalan bitleri 0 olmalidir. Boylelikle sayi ile maskeyi & islemine sokunca maskendeki 0'lardan dolayi sayinin o bitlere karsilik gelen bitleri sifirlanacaktir. Geriye de elde etmek istedigin bitler kalacak. And operatorunun calisma seklini dusunursen daha iyi anlarsin.

Orneklendirecek olursak:
#include <stdio.h>

int main()
{
    unsigned int x = 0b11100011110;   // 1822
    unsigned int y = x & (0x000F);    // maske //yada 0b00001111 diye de yazabilirsin
    printf("\nx: %d\n", x);
    printf("y: %d\n", y);

    return 0;
}


Ciktisi:
x: 1822                                                                                                                                                                                                                                                                                                             
y: 14 


14 de binary olarak: 1110

styx75

teşekkür ederim.birde float tipi değişkenlerin tamsayı ve onda kısmını ayrı ayrı tam sayı değişkenlerine atanabilirmi.

vitruvius