folder Tahribat.com Forumları
linefolder C#, Asp.Net, .Net Core
linefolder C# Hakkında Çok Basit Bir Soru ?



C# Hakkında Çok Basit Bir Soru ?

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    SharpShooter
    SharpShooter's avatar
    Banlanmış Üye
    Kayıt Tarihi: 10/Temmuz/2008
    Erkek

    Destroyer bunu yazdı:
    -----------------------------

    @SharpShooter

    a = a ^ b;

    b = b ^ a;

    a = a ^ b;

    Bunda bir hata var sanki ?!?


    -----------------------------

    hayır hocam :)

    int a = 5;
    int b = 6;

    a = a ^ b;
    b = b ^ a;
    a = a ^ b;
    MessageBox.Show(a.ToString()+ "-"+ b.ToString());

    çıkan sonuç: 6-5


    - xx yerde hata var. - ya aslında kod şöyle sanıyor olabilir bla bla bla - olm kendine gel kodlar düşünmez - ...
  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Destroyer
    Destroyer's avatar
    Kayıt Tarihi: 27/Eylül/2003
    Erkek

    @SharpShooter

     Hocam mantıklı gelmiyor. Senin C# compiler bozulmuş olmasın. Küçük sayılarla deneyelim. ^ işareti üssü işareti değil mi?

    int a = 2;
    int b = 3;

    a = a ^ b; ---> 2^3 ---> a = 8 oldu.


    b = b ^ a; ---> 3^8 ---> b = 6561 oldu.


    a = a ^ b; ---> 8^6561 ---> a = 1.4907494374831386027492982111719e+5925 oldu.

     

    Hatalıysam söyleyin.


    d.d.
  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    legion_of_doom
    legion_of_doom's avatar
    Kayıt Tarihi: 04/Mayıs/2009
    Erkek

    üslü olarak almıyor hocam ^ bu...

    a=5;

    b=6;

    a = a ^ b;  //5 ^ 6 = 3, yani artık a = 3 oldu

    b = b ^ a;  //6 ^ 3 = 5 buradan da b= 5 oluyor

    a = a ^ b;  //3^5=6 buradan da a = 6 oluyor

     


    Biraz bilmek tehlikelidir. Ya derinliklerden iç ya da bilgeliğin tadını tatmaya kalkma! Çünkü sığ sular beyni zehirler, bol sular insanı temizler....-------------------pompey--------
  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Destroyer
    Destroyer's avatar
    Kayıt Tarihi: 27/Eylül/2003
    Erkek

    ^ hocam bu işaret matematikte veya mantıkta ne olarak kullanılıyor. C# ne anlamda kullanmış anlayamadım. İsmini söyleyebilir misin?

    Peki bu işaret 5 ve 6 dışında başka sayılar için de doğru sonuç veriyor mu?

     


    d.d.
  5. KısayolKısayol reportŞikayet pmÖzel Mesaj
    SharpShooter
    SharpShooter's avatar
    Banlanmış Üye
    Kayıt Tarihi: 10/Temmuz/2008
    Erkek

    Destroyer bunu yazdı:
    -----------------------------

    @SharpShooter

     Hocam mantıklı gelmiyor. Senin C# compiler bozulmuş olmasın. Küçük sayılarla deneyelim. ^ işareti üssü işareti değil mi?

    int a = 2;
    int b = 3;

    a = a ^ b; ---> 2^3 ---> a = 8 oldu.


    b = b ^ a; ---> 3^8 ---> b = 6561 oldu.


    a = a ^ b; ---> 8^6561 ---> a = 1.4907494374831386027492982111719e+5925 oldu.

     

    Hatalıysam söyleyin.


    -----------------------------

    benim yöntemin iç yüzü şöyle

    int a = 5; ramde şöyle tutuluyor ---> 101

    int b = 6; ramde şöyle tutuluyor ---> 110

    şimdi 

    101

    110

    sağdan başlayarak, 1'i 0 a bölersek kalan 1 olur ,  0'ı 1'e bölersek gene kalan 1, 1 bölü 1 dende kalan 0 

    yani a nın son değeri = 011 yani 3

    2. satırda ( b = b ^ a;) ise b nin değeri

    101 yani 5,

    son durumda 

    a da = 3

    b de = 5 var

    en sonda ise

    a= 011 -->3

    b= 101 -->5

    yani, 1 bölü 1 kalan 0, 1 bölü 0 kalan 1 ,  0 bölü 1 kalan 1

    yani a da en son

    a = 110 = 6

    not: benim yöntem böyle :)


    - xx yerde hata var. - ya aslında kod şöyle sanıyor olabilir bla bla bla - olm kendine gel kodlar düşünmez - ...
  6. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Destroyer
    Destroyer's avatar
    Kayıt Tarihi: 27/Eylül/2003
    Erkek

    @SharpShooter

    ula şimdi anladım. bitwise division'dan bahsediyonuz.

    Kanımca bu sadece 5 ve 6 sayıları için çalışır. Dimi?  :)


    d.d.
  7. KısayolKısayol reportŞikayet pmÖzel Mesaj
    legion_of_doom
    legion_of_doom's avatar
    Kayıt Tarihi: 04/Mayıs/2009
    Erkek
    hayır hocam hepsi için çalışır bu yöntem..

    Biraz bilmek tehlikelidir. Ya derinliklerden iç ya da bilgeliğin tadını tatmaya kalkma! Çünkü sığ sular beyni zehirler, bol sular insanı temizler....-------------------pompey--------
  8. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Destroyer
    Destroyer's avatar
    Kayıt Tarihi: 27/Eylül/2003
    Erkek
    denedim, valla oluyor :D

    d.d.
  9. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Ercan
    Ercan's avatar
    Kayıt Tarihi: 04/Temmuz/2008
    Erkek
    haha harbi manyak yöntemmiş :=)

    IF YOU ARE NOT TİRED, YOU ARE NOT DOING IT RIGHT
  10. KısayolKısayol reportŞikayet pmÖzel Mesaj
    SpArK
    SpArK's avatar
    Kayıt Tarihi: 17/Temmuz/2005
    Erkek

    bunun hakkinda bir ara bende yazi yazmistim bir sitede.algoritmanin ismi

     

    "XOR Swap Algorithm"  guncel mimarilerde yavas calistigini ogrendigim benimde kullandigim bir algoritmaydi.

     

    http://derlevecalistir.org/ccplusplus/68-genel/72-xor-swap-algoritmasi 

     

     

    Edit : Referanslarda aliasing varsa , veyahut 2 farkli refaransin gosterdigi degerler ayniysa patlayip ikisinede 0 sonucunu veren bir algoritma :) o yuzun

    aliasing ve ayni iki sayi olmamasi icin ekstra kosul gerekiyor 

Toplam Hit: 5443 Toplam Mesaj: 23