Geçenlerde aşağıdaki isteyen bir görüşme soru gördük:
32 bitlik sayı göz önüne alındığında, ikinci son kısmını çevirmek için sözde kod yazmak
Bunu yapmanın en iyi / en kolay yolu nedir?
Geçenlerde aşağıdaki isteyen bir görüşme soru gördük:
32 bitlik sayı göz önüne alındığında, ikinci son kısmını çevirmek için sözde kod yazmak
Bunu yapmanın en iyi / en kolay yolu nedir?
bit tabanlı XOR operatörünü kullanabilirsiniz?
#define MASKESİ 0x00000002
Yeni = eski ^ MASKE
Özel ya da örneğin 2 ile i = i ^ 2
a = 0x80000000; // the second last bit set
if( i & a == 0) // not set in i -> set it
i |= a;
else // set -> un-set it in i
i &= ~a;
düzenleme: arg, tabii :-) bunu XOR olabilir Ama 2 saniye biraz değil ikinci son parçasıdır. Belki daha iyi MSB ve LSB bahsetmek.
X ^ (1<<n) will toggle the state of nth bit in the number X.
Bazı cevaplar LSB olarak, diğerlerini MSB olarak "son biti" yorumlamak bkz. Belki de kod çevriliyordu önce durup açıklama istemek kadar akıllı adaylar arıyoruz. Yani gerçek dünya işlerinde çok önemli.