8 bittin ilk dört bitini ayırıp degişkene atama

Başlatan bbs2006, 12 Mart 2016, 23:24:53

bbs2006

Merhaba
8 bitin ilk dört bitini ve son dört bitini ayırıp farklı değişkenlere atmak istiyorum. nasıl yapabilirim.


z

X sayısı 8 bit ve  X=(H x 16) + L olduğuna göre;

H = X / 16 

L = X - (H x 16) ya da  L = X and 16

olacaktır.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

alexsi

Sayilsb=Sayi&0x0f;
Sayimsb=Sayi&0xf0;
Sayimsb ve Sayilsb yi kullanin.
http://www.kontrolarge.com/ Bildiklerimiz öğrendiklerimiz kadardır. Ya bilmediklerimiz ..?

kareli

Hocam galiba maskeleme kullanicaksin benim bilgim 6 bitlikti portum da 6 cikisliydi ilk iki bitte kayma olmamasi icin maskeleme yapmistim.giris=giris&&00111111
'Bırakın bugün onların olsun: ama uğrunda çok uğraştığım gelecek, benimdir' Nikola Tesla.

F493

Selam,

    Bu işlemi devamlı yapacaksanız şu da cepte dursun,

// unsigned int 'leri int8 olarak değiştirebilirsiniz.

typedef union {
  unsigned int _8bitDeger;
  struct {
    unsigned int Ust_4bit : 4;
    unsigned int Alt_4bit : 4;
  }_4bit;
}_4bitDegiskenler;

_4bitDegiskenler _DortbitDegiskenler;


Kullanımı,

    _DortbitDegiskenler._8bitDeger = 0x5A;  // Bu şekilde 8 bit atama yaptığınızda

    _DortbitDegiskenler._4bit.Alt_4bit 'i ekrana yazdırdığınız zaman 0x5'i görürsünüz.
    _DortbitDegiskenler._4bit.Ust_4bit 'i ekrana yazdırdığınız zaman 0xA'yı görürsünüz.

Hiçbir işlem yapmanıza gerek yok.

Sadece   _DortbitDegiskenler._8bitDeger 'e değeri atayın 4 bitler cepte.


Esen kalın.