MErhaba
int1 m;
int x ;
x = 0b11101010 ;
x in 5 . bitini m ye atmak istiyorum CCS C de maalesef bulamadım
/* Bit Operation macros */
#define sbi(b,n) ((b) |= (1<<(n))) /* Set bit number n in byte b */
#define cbi(b,n) ((b) &= (~(1<<(n)))) /* Clear bit number n in byte b */
#define rbi(b,n) ((b) & (1<<(n))) /* Read bit number n in byte b */
#define fbi(b,n) ((b) ^= (1<<(n))) /* Flip bit number n in byte b */
#define bit_is_set(b,n) (b & (1<<n)) /* Test if bit number n in byte b is set */
#define bit_is_clear(b,n) (!(b & (1<<n))) /* Test if bit number n in byte b is clear */
cevabınız için teşekkürler
küçük bir örnek rica etsem
m = bit_test(x,5);
Türkçe kaynak bile varmış,
niye bulamadınız.
https://mehmetakifsonmez.wordpress.com/2012/10/16/ccs-c-ile-pic-programlama-bit-ve-byte-islemleri-dahili-fonksiyonlari/
Alıntı yapılan: povulon - 21 Şubat 2018, 12:29:37
MErhaba
int1 m;
int x ;
x = 0b11101010 ;
x in 5 . bitini m ye atmak istiyorum CCS C de maalesef bulamadım
if(x&0B00100000) m=1;
else m=0;
Eğer hep aynı yerdeki bit okunacak ise şöyle basit bir kullanımı da var :
int x;
int m;
#bit x_5 = x.5
m=x_5;
Peki
unsigned int16 i;
int1 n;
n=1;
n ' nin içinde 1 değerini i 'nin 7. bitine aktarmak istiyorum
Teşekkürler
Bazı şeyler istemekle olmuyor, çalışmak denemek lazım.
if(n) i |= 0B10000000;
else i &= 0B01111111;