Kayıtlar

Register level etiketine sahip yayınlar gösteriliyor

C++ Dersleri | Bitwise Operatörleri | Right Shift Operatör

 C++ bitwise operatörlerden right shift operatörünü konu alıyoruz >> . Right shift operatörü,   C++ Dersleri | Bitwise Operatörleri | Left Shift Operatör konusunda bahsettiğimiz tüm özellikleri taşıyor, tek farkla : bit dizisini sağa doğru kaydırıyor. Bir örnekle right shift operatörünün nasıl kullanıldığına bakalım: int   main () { int   a   =   2 ; // 0010b int   b   =   a   >>   1 ; // 0001b cout   <<   " a= "   <<   a   <<   " , b= "   <<   b ; } çıktımız şu şekilde :  a=2, b=1  Kolayca anlayabileceğimiz şekilde a değişkeni için oluşan binary sistem diziliminde indexlemeye göre 1. bit hanesinde yer alan operatöre gönderdiğimiz sayı :1 adedince sağ tarafa kaydırılmış. Left Shift operatörü için sayıyı 2 'nin kuvvetleriyle çarpmakla aynı şey demiştik, burada olan da sayıyı 2 'nin kuvvetleriyle bölmekle aynı şeydir. a değişkeninin değeri olan 2 'yi 2^1 'e (bu 1 operatöre gönderilen 1) bölerek 1 eld

C++ Dersleri | Bitwise Operatörleri | Left Shift Operatör

Resim
 C++ bitwise operatörlerinden left shift << operatörüne gelmiş bulunmaktayız, adından da anlaşılabileceği üzere binary düzendeki bir değişkeni  MSB (most significant bit) tarafından kayıplarla LSB (least significant bit) tarafından yeni eklemelerde düzenleyen bir operatördür, ne demek istiyorum bir örnekle açıklamaya çalışalım: int   main () { int   a   =   4 ; //0100 int   b   =   a   <<   1 ; //1000 cout   <<   " a= "   <<   a   <<   " , b= "   <<   b   <<   endl ; } şöyle bir çıktıya ulaştık :  a=4, b=8  burada olan; indekse göre konuşacak olursam, a değişkeninin 2. bitinde yer alan 1 değeri, 1 bit sola kaydırılmış oldu. Olayı bu kadar basit olmakla beraber dikkat edilmesi gereken noktalarımız vardır; ilk dikkat etmemiz gereken şey değişkenin boyutu, int yukarıdaki kod için benim sistemimde 4 bytes. Bu da şu anlama gelir 4bytes * 8 bit 'ten 32 bitlik bir değişkenimiz var demektir,  ve bu 32 bitlik de

C++ Dersleri | Bit işlemleri - Bitwise And ~ C++ ve operatörü &

Resim
 C++ bitwise and (ve operatörü) & , dijital elektronikten bildiğimiz ve kapısıyla aynı mantıkla çalışmaktadır, iki operandı bulunup, her iki operand da doğru ise doğru (true) sonucunu üretir, diğer tüm olaslıklarda yanlış (false) sonucunu üretir. C++ ve operatörü için doğruluk tablosunu bir görsel ile paylaşalım : kodlarken de aynı isimdeki değişkenleri kullanalım: int   main () { int   a   =   7 ; //0111 int   b   =   13 ; //1101 int   aANDb   =   a   &   b ; //0101 cout   <<   " a= "   <<   a   <<   " , b= "   <<   b   <<   " , a&b= "   <<   aANDb ; } programın çıktısı şu şekilde :   a=7, b=13, a&b=5  Sonuç olarak 5 elde ettik, C++ 'ın bu hesaplamayı nasıl yaptığını alttaki görselde açıklamaya çalıştım: Her sütunu kendi içinde and işlemine tabi tutup aynı haneye cevap olarak döndürüyor. Bu operatörün kendi başına değişkenin değerinde bir değişiklik yapmadığını unutmayın,

Arduino UNO, Atmel Studio üzerinden programlamak | AVR Programlama - Registers

Resim
Arduino üzerinde bazı şeyleri öğrendik, hazır kütüphaneler üzerinde projelerimizi çalıştırdık, ama sanki IDE üzerinde eksik bişey var gibi, mesela bir IntelliSense olaydı ne güzel olmaz mıydı? hani şu değişken adını yazmaya başladığımızda tamamlama önerileri çıkartan, ya da nesne tabanlı programlamada kullandığımız; nesne. yazınca nesnenin tüm özelliklerine ulaşabildiğimiz yardımcı pencere açan.. bunun için Arduino yu bir adım ileriye taşıyan Atmelin kendi kodlayıcısı Atmel Studio  (artık yerini MicroChip Studio alıyor) mevcut, Visual Studio kullananların hemen alışacağı (neredeyse aynısı) bir kodlama arayüzü, kod yazmak için biraz datasheet karıştırmak gerekiyor. Ancak kontrolün sizde olduğunu bilmek bir ayrıcalık, Arduino IDE ile yazılmış bir led yakın söndürme kodu : void setup () {   // initialize digital pin LED_BUILTIN as an output.   pinMode ( LED_BUILTIN , OUTPUT ); } // the loop function runs over and over again forever void loop () {   digitalWrite ( LED_BUILTIN , HIGH )