20 Kasım 2014, 22:32 | #1 | |
Çevrimdışı
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
IF Ticaret Sayısı: (0) | Bitwise Identifiers (Bitsel Tanımlar) ;Hazırlayan: Feragat - Bitwise Iidentifiers (Bitsel Tanımlar)- Tanımlar: $isbit - $biton - $bitoff - $and - $or - $xor - $not Bitsel(Bitwise) işlemler, sayıların binary değerlerinin görülmesinde ve karşılaştırılmasında kullanılan matematiksel işlemlerdir. Binary değerleri sayıları ikilik taban sisteminde yazmanın farklı bir yoludur. $base kullanılarak, sayılar 10'luk sistemden(Normal sayma sistemi), binary'e dönüştürülebilir. - $isbit Tanımı - -mirc.chm (mirc yardım) dosyasındaki anlatımı- $isbit(A,N) Returns 1 if the Nth bit in number A is turned on. Kullanımı: $isbit(Sayı,BitNumarası) Açıklama: Sonuç 1 dönerse 2. Sayıda belirtilen bit numarası açıktır(1). Eğer 0 dönerse kapalı(0). Örnek: //echo –a $isbit(5,1) - 1 Neden bir döndüğünü görebilmek için öncelikle 5’in binary değerini buluyoruz ($base(5,10,2,8)) 5 = 00000101 $isbit(5,1) yaptığımızda 5 binary değerinin 1. Bit’ini (1'ler basamağı olan en sondakini) temsil etmiş oluruz ve görüldüğü gibi 1. Bit 1’e eşit(açık bit) ve sonuç 1 döndü. //echo -a $isbit(5,2) - 0 Burada 2. Bit'i sorguladı ve 2. Bit 0'a eşit(kapalı bit) olduğu için sonuç 0 döndü. //echo -a $isbit(5,3) - 1 3. Bit 1'e eşit olduğu için 1 döndü. Sonuç: 5 = 00000101 Binary değerinde 5,1 ve 5,3 sorgusunun dönmesinin sebebi 1.bit(1'ler basamağının) ve 3.bit(yüzler basamağının)'in 1 e eşit olmasıdır. Kısa bir Örnek: 13 = 00001101 Burada sadece $isbit(13,1) - $isbit(13,3) - $isbit(13,4) sorguları 1 dönecektir. - $biton Tanımı - mirc.chm (mirc yardım) anlatımı $biton(A,N) Returns the A value with the Nth bit turned on. Kullanımı: $biton(Onluk Sayı, N) Açıklama: N'inci bit numarasını açar. Örnek: //echo -a $biton(5,2) 5 = 00000101 Sağdan 2. bit'i açar (0 yani kapalı bit, açıldı ve 1 değerini aldı.) Sonuç: 7 = 00000111 - $bitoff Tanımı - mirc.chm (mirc yardım) anlatımı $bitoff(A,N) Returns the A value with the Nth bit turned off. Kullanımı: $bitoff(Onluk Sayı, N) Açıklama: N'inci bit numarasını kapatır. Örnek: //echo -a $bitoff(5,3) 5 = 00000101 Sağdan 3. bit'i kapadı. (1 yani açık olan bit kapandı ve 0 oldu.) Sonuç: 1 = 00000001 - $and Tanımı - mirc.chm (mirc yardım) anlatımı $and(A,B) Returns A binary and B. Kullanımı: $and(Sayı 1, Sayı 2) Açıklama: Belirtilen rakamların binary değerlerini baz alarak sayıları kıyaslar ve bit'lere işlemler yaparak sonuç verir. Örnek: //echo -a $and(11,12) Binary değerleri: 11 = 00001011 12 = 00001100 - 11 = 0000 1 0 1 1 12 = 0000 1 1 0 0 Burada alt alta basamakları sıraladık, alt alta aynı olan rakamlar olduğu gibi kalıyor. Bir birinden farklı olan rakamlar Sıfır[0]’a dönüşüyor ve sonuç ortaya çıkıyor. Sonuç: 8 (00001000) Binary’e dönüştürüp kontrol edebiliriz. = //echo -a $base(00001000,2,10) -: 8 Küçük bir örnek daha: //echo -a $and(5,6) Binary Değerleri: 5 = 00000101 6 = 00000110 Sonuç: 4 (00000100) 5 = 00000 1 0 1 6 = 00000 1 1 0 Son 3 Bit'in Soldan 1. haneleri alt alta 1 ve 1, bu olduğu gibi kalıyor çünkü aynı. 1 x 1 = 1 Soldan 2. haneleri alt alta 0 ve 1, burada 0, 1'ile çarpılıyor (bit kapanıyor) ve Sıfır[0]'a dönüştürüyor. 0 x 1 = 0 Soldan 3. haneleri alt alta 1 ve 0, burda da yine aynı şekilde 0, 1'ile çarpılıyor ve sonuç: 100 oluyor. 1 x 0 = 0 Sonuç: 4 (00000100) - $and Tanımı İle İlgili Ek Bilgi: - $and tanımı ile ilgili pek bahsedilmemiş bir fonksiyon da if koşulunda bulunuyor. if (N1 & N2) : Eğer N1 ve N2 değeri $and tanımında Sıfır[0] dışında bir sonuç dönerse koşul çalışır. Örnek: Koşul; Kod: Kodu kopyalamak için üzerine çift tıklayın!
Örnek2: Koşul; Kod: Kodu kopyalamak için üzerine çift tıklayın!
- $or Tanımı - mirc.chm (mirc yardım) anlatımı $or(A,B) Returns A binary or B Kullanımı: $or(Sayı1,Sayı2) Açıklama: Belirtilen rakamların binary değerlerini alt alta sıraladığımızda. $and tanımında 0'lar 1'leri 0’a dönüştürüyordu, $or tanımında ise 1'ler 0'ları 1'e dönüştürüyor. Örnek: //echo -a $or(5,6) :- 7 5 = 00000 1 0 1 6 = 00000 1 1 0 Son 3 Bit'in soldan 1. haneleri alt alta 1 ve 1, bunlar aynı olduğu için kalıyor. 1 x 1 = 1 Soldan 2. haneleri alt alta 0 ve 1, burada 1, 0'ı 1'e dönüştürüyor. 0 + 1 = 1 3. haneleri alt alta 1 ve 0, burada yine 1, 0'ı 1'e dönüştürüyor. 1 + 0 = 1 Sonuç: 7 (00000111) - $xor Tanımı - mirc.chm (mirc yardım) anlatımı $xor(A,B) Returns A binary xor B. Kullanımı: $xor(Sayı1,Sayı2) Açıklama: Belirtilen rakamların binary değerlerini alt alta sıraladığımızda aynı olan rakamları Sıfır[0] a dönüştürür, Farklı olanlarıda 1'e. Örnek: //echo -a $xor(5,6) 5 = 00000 1 0 1 6 = 00000 1 1 0 Son 3 Bit'in soldan 1. haneleri alt alta 1 ve 1, bunlar aynı olduğu için 0'a dönüştü. 1 - 1 = 0 Soldan 2. haneleri alt alta 0 ve 1, bunlar birbirinden farklı olduğu için, 1'e dönüştü. 0 + 1 = 1 3. haneleri alt alta 1 ve 0, bunlarda yine birbirinden farklı olduğu için, 1'e dönüştü. 1 + 0 = 1 Sonuç: 3 (00000011) - $not Tanımı - mirc.chm (mirc yardım) anlatımı $not(A) Returns the binary not value of A. Açıklama: 4 bayt'lık(32 bit) maksimum değer olan 11111111111111111111111111111111 yada bunun onluk değeri olan 4294967295 sayıları ile kıyaslama yapar ve sonucu verir. Kullanımı: $not(Sayı) Onluk tabandaki değere yaptığı işlem ve sonucu: Örnek: //echo –a $not(6) -: 4294967289 Baz alınan onluk sayımız: 4294967295 $not(6) tanımından çıkan sonucumuz: 4294967289 İşlem: 4294967295 – 6 = 4294967289 32 bit maksimum değer ile yaptığı işlem ve sonucu: 6 rakamının 32 bit binary değeri: //echo -a $base(6,10,2,32) yani 00000000000000000000000000000110 Kıyaslamada baz alınan 32 bit maksimum sayımız: 11111111111111111111111111111111 Kıyaslanan sayımız (6'nın 32 bit binary değeri): 00000000000000000000000000000110 = $base(6,10,2,32) Sonuç: 11111111111111111111111111111001 (0’lar 1’e dönüşüyor ve alt alta aynı olan bit'ler(1'ler) ise 0’a dönüşüyor.) 4294967295 = 11111111111111111111111111111111 6 = 00000000000000000000000000000110 4294967289 = 11111111111111111111111111111001 Not: Sonucumuzu, $not(6) tanımından çıkan sonucu dönüştürerekte görebiliriz: //echo -a $base(4294967289,10,2,32) Konu ile ilgili faydalı olabilecek kaynaklar: 1-) [Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] 2-) [Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] 3-) [Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] 4-) [Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] Not: Daha farklı şekillerde/yollarla de anlatılabilirdi, rahat anlaşılabilmesi adına en basite indirgedim. Anlatım, alıntı vs. değildir. İyi forumlar.
__________________ The Ghost of Christmas Past... i'm here sometimes Konu Feragat tarafından (27 Şubat 2016 Saat 16:52 ) değiştirilmiştir. | |
|
26 Kasım 2014, 23:23 | #3 |
Çevrimdışı
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
IF Ticaret Sayısı: (0) | Bitwise Identifiers (Bitsel Tanımlar) Burada amaç; mIRC Scripting de pek üzerinde durulmamış konulara değinmekti. Aklımda bir kaç buna benzer konu daha var. Kısmet olursa bir gün onlarıda anlatıp paylaşmak istiyorum.
__________________ The Ghost of Christmas Past... i'm here sometimes |
|
Etiketler |
bitsel, bitwise, identifiers, tanımlar |
Konuyu Toplam 1 Üye okuyor. (0 Kayıtlı üye ve 1 Misafir) | |
| |
Benzer Konular | ||||
Konu | Konuyu Başlatan | Forum | Cevaplar | Son Mesaj |
Alanlar ve tanımlar / döndürür | DaDaS | CR Makaleler | 0 | 14 Ocak 2012 23:16 |
Tanımlar | Kalemzede | Felsefe | 0 | 07 Ekim 2011 15:19 |
whois identifiers'i | Lord_Raiden | mIRC Scripting Sorunları | 2 | 25 Aralık 2008 14:26 |
Tokenize Identifiers ($gettok v.s.) | MephisTo | mIRC Scripting Dersleri | 27 | 07 Aralık 2008 12:26 |