IRCRehberi.Net- Türkiyenin En iyi IRC ve Genel Forum Sitesi  
 sohbet
derya sohbet


mIRC Scripting Dersleri mIRC veya IRC komutları hakkında detaylı anlatım makalelerine bu başlık altından ulaşabilirsiniz.

2Beğeni(ler)
  • 1 Post By Feragat
  • 1 Post By Sim


 
 
Seçenekler Stil
Alt 27 Mart 2022, 00:23   #1
Özel Üye
Feragat - ait Kullanıcı Resmi (Avatar)

Cool Bitwise Indentifers - Bitsel Tanımlar

Anlatım Tarihi: 20 Kasım 2014 - 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

//if (9 & 10) { echo -a Sonuç: $and(9,10) } | else { echo -a Sonuç Yok }
Sonuç: 8
Örnek2:
Koşul;

Kod

//if (7 & 8) { echo -a Sonuç: $and(7,8) } | else { echo -a Sonuç Yok }
Sonuç: Sonuç Yok

- $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) = $base(3,10,2,8)


- $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ı yollarla da anlatılabilirdi, rahat anlaşılabilmesi adına en basite indirgedim. Kolay gelsin.
________________

The Ghost of Christmas Past..

i'm here sometimes
 
Alt 27 Mart 2022, 09:15   #2
Sim
civciv~🐥
Sim - ait Kullanıcı Resmi (Avatar)

Standart

emeginize saglik

________________

Hope. . . ✨
 
Alt 04 Mayıs 2022, 12:24   #3
Standart

Paylaşım için teşekkür ederiz, emeğinize sağlık

 
Alt 04 Mayıs 2022, 12:27   #4
Hayat Çok Kısa
Sihirbaz - ait Kullanıcı Resmi (Avatar)

Standart

emeginize saglik

 
Alt 04 Mayıs 2022, 12:31   #5
Emektar
Murat - ait Kullanıcı Resmi (Avatar)

Standart

Paylaşım İçin teşekkürler Emeğine Sağlık

 
Alt 04 Mayıs 2022, 12:32   #6
Standart

emeginize saglik

________________

No MoRe DramA
 
Alt 04 Mayıs 2022, 12:44   #7
Mix
★ GeneraL ★
Mix - ait Kullanıcı Resmi (Avatar)

Standart

Paylaşım için teşekkürler.

 


Konuyu Toplam 1 Üye okuyor. (0 Kayıtlı üye ve 1 Misafir)
 

Yetkileriniz
Konu Acma Yetkiniz Yok
Cevap Yazma Yetkiniz Yok
Eklenti Yükleme Yetkiniz Yok
Mesajınızı Değiştirme Yetkiniz Yok

BB code is Açık
Smileler Açık
[IMG] Kodları Açık
HTML-Kodu Kapalı
Trackbacks are Kapalı
Pingbacks are Kapalı
Refbacks are Kapalı





Tüm Zamanlar GMT +3 Olarak Ayarlanmış. Şuanki Zaman: 17:49.