SORU
4 ŞUBAT 2015, ÇARŞAMBA


İki tamsayılar XOR saha dışına gidebilir mi?

Bir dizi yalnız tamsayılar bulmak için algoritma çalışıyordum, ve işte kullanımı

int arr[] = {10, 20, 30 ,5, 20, 10,30 };
int LonelyInteger = 0;
for(int i=0; i< 7; i  )
{
    LonelyInteger = LonelyInteger ^ arr[i];
}

Bu eesult 5.

Benim sorum - güya tamsayı (XOR işlemi tarafından oluşturulan alıyorum)çok büyükbu operasyon nedeniyle:

O, bu veri türü int say tarafından temsil edilemeyen bu durumda potansiyel olarak büyük bir tamsayı olur. Benim sorular şunlardır:

  1. XOR böyle büyük bir tamsayı üretecek bile mümkün olamaz int yazın saklanır mı?
  2. Eğer bu durum mümkün değilse o zaman bu bir kanıt mı?

CEVAP
4 ŞUBAT 2015, ÇARŞAMBA


XOR hiç bit birleştirir ve hiçbir bit önce ayarlanmış yeni bit yaratmaz çünkü saha dışına gidecek.

Sonuç 5 doğru. Değeri XOR sonuç ikili gösterimi bak

10    00001010
20    00010100
30    00011110
 5    00000101
20    00010100
10    00001010
30    00011110
--------------
      00000101 => 5

Kolay yardım için hesaplama sonucu birçok XORed değerleri: sonuç-ecek var bir bit kümesi bir tek sayı parçacıklarıdır birlikte, hiçbir bit için çift sayı parçaları.

Eğer bu durum mümkün değilse o zaman bu bir kanıt mı?

XOR bireysel bitlerin devam etmeden ayrıca eşdeğerdir. Taşıdığın olmadan bit eklemek, taşma meydana gelebilir ve int değeri sınırları dışına gidemez.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • ChannelRichard

    ChannelRicha

    7 Kasım 2008
  • engineerguy

    engineerguy

    10 Ocak 2010
  • LounaTutorials

    LounaTutoria

    10 EYLÜL 2009