Picproje Elektronik Sitesi

PROGRAMLAMA DİLLERİ => C/C++ => Konuyu başlatan: power20 - 09 Şubat 2020, 00:22:55

Başlık: Mantıksal ifade anlaşılamadı
Gönderen: power20 - 09 Şubat 2020, 00:22:55

unsigned char       data         ;
unsigned char bit;

 

data |= 0x80 * !!bit;


!!bit yine bit'in kendisi olmuyor mu? iki kere değil alınmış?  !! farklı bir anlamı mı var?

Başlık: Ynt: Mantıksal ifade anlaşılamadı
Gönderen: algorist - 09 Şubat 2020, 00:57:11
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Logical_Operators
Başlık: Ynt: Mantıksal ifade anlaşılamadı
Gönderen: power20 - 09 Şubat 2020, 01:28:06
Double not diyor.
Bu ne amaçla kullanılır. İki kere değil almak yine kendisi olmuyor mu?
Başlık: Ynt: Mantıksal ifade anlaşılamadı
Gönderen: HAKKITANIR - 09 Şubat 2020, 14:22:26
Evet kendisi oluyor.
Hiç kullanmadım ama benim C derleyici de iş görüyor.
data |= 0x80 * !!bit;
ile
data = data | 0X80 * !!bit;
kısaltılmış oluyor.
data = data | (0X80 * !!bit); işlemi böylemi düşündünüz?
data = (data | 0X80) * !!bit; yada böylemi?

derleyici sizin düşündüğünüz gibi mi işlem yaptı? kısmını aydınlatmak için,
parantezli bir deneme yapsanız.
Başlık: Ynt: Mantıksal ifade anlaşılamadı
Gönderen: brandice5 - 09 Şubat 2020, 14:26:08
İki kere değil almak char veri tipini boolean yapmak için kullanılır.