Röportaj: Çevrilen Uçları

oy
5

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?

Oluştur 06/07/2010 saat 11:50
kaynak kullanıcı
Diğer dillerde...                            


6 cevaplar

oy
0

bit tabanlı XOR operatörünü kullanabilirsiniz?

Cevap 06/07/2010 saat 11:52
kaynak kullanıcı

oy
8

#define MASKESİ 0x00000002 

Yeni = eski ^ MASKE

Cevap 06/07/2010 saat 11:54
kaynak kullanıcı

oy
3

Özel ya da örneğin 2 ile i = i ^ 2

Cevap 06/07/2010 saat 11:55
kaynak kullanıcı

oy
3
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.

Cevap 06/07/2010 saat 12:02
kaynak kullanıcı

oy
5
X ^ (1<<n) will toggle the state of nth bit in the number X.
Cevap 17/07/2010 saat 01:01
kaynak kullanıcı

oy
6

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.

Cevap 07/10/2010 saat 21:53
kaynak kullanıcı

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more