«bit-manipulation» etiketlenmiş sorular

Bireysel bitlerin manipülasyonu. Kullanılan operatörler bitsel AND, OR, XOR, NOT, sola kaydırma ve sağa kaydırma içerebilir.

16
C ++ 'da dairesel kaydırma (döndürme) işlemleri için en iyi uygulamalar
Sol ve sağ kaydırma operatörleri (<< ve >>) C ++ 'da zaten mevcuttur. Ancak dairesel kaydırma veya döndürme işlemlerini nasıl yapacağımı bulamadım. "Sola Döndür" ve "Sağa Döndür" gibi işlemler nasıl yapılabilir? Burada iki kez sağa döndürülüyor Initial --> 1000 0011 0100 0010 şunlarla sonuçlanmalıdır: Final --> 1010 0000 1101 0000 …

1
Öncelik ve bit maskesi işlemleri
(Görünüşe göre) çok garip bir vakayla karşılaştım. 2 numaralı (al 0b10() ve 1 ile bit maskesi 0b01) Bu, 0b000'a eşdeğer olanı üretmelidir . Ancak, Bay Schrödinger burada devreye giriyor: var_dump(0b10 & 0b01); // int(0) var_dump(0b10 & 0b01 == 0); // int(0) var_dump(0b10 & 0b01 != 0); // int(0) Viski. Tango. …


3
CHAR_BIT nedir?
Http://graphics.stanford.edu/~seander/bithacks.html adresinden dallanmadan tamsayı mutlak değeri (abs) hesaplamak için kodun alıntılanması : int v; // we want to find the absolute value of v unsigned int r; // the result goes here int const mask = v >> sizeof(int) * CHAR_BIT - 1; r = (v + mask) ^ mask; …

7
C / C ++: Zorla Bit Alan Sırası ve Hizalama
Bir yapı içindeki bit alanlarının sırasının platforma özgü olduğunu okudum. Derleyiciye özgü farklı paketleme seçenekleri kullanırsam, bu garanti verileri yazıldıkları sırada doğru sırada depolanır mı? Örneğin: struct Message { unsigned int version : 3; unsigned int type : 1; unsigned int id : 5; unsigned int data : 6; } …


10
Bir tamsayıdaki 1 bitlerin bitişik bir bölgede olmasını test etmenin zarif ve hızlı bir yolu var mı?
Bit değeri 1 olan konumların (32 bitlik bir tam sayı için 0'dan 31'e kadar) bitişik bir bölge oluşturup oluşturmadığını test etmem gerekiyor. Örneğin: 00111111000000000000000000000000 is contiguous 00111111000000000000000011000000 is not contiguous Bu testin, yani bazı işlevlerin has_contiguous_one_bits(int)taşınabilir olmasını istiyorum. Açık bir yol, ilk set biti, ardından ilk set olmayan biti bulmak …


8
64 bit tam sayıdaki paketlenmiş 8 bit tam sayıları paralel olarak 1, donanım SIMD'siz SWAR çıkarma
Ben 8 elementli paketlenmiş 8 bitlik tamsayılar dizisi olarak yorumladığım 64 bitlik bir tamsayı varsa. Ben 1başka bir elemanın sonucunu etkileyen bir eleman sonucu olmadan taşma işlerken her paketli tamsayı sabit çıkarmak gerekir . Şu anda bu kodu var ve çalışıyor ama paralel olarak her paketlenmiş 8-bit tamsayı çıkarma yapar …
77 c++  c  bit-manipulation  simd  swar 

6
(x | y) - y neden sadece x, hatta x olamaz? 0`
Bir çekirdek kodlarını okuyordu ve tek bir yerde içimde bir ifade gördüm ifaçıklamada gibi if (value == (SPINLOCK_SHARED | 1) - 1) { ............ } nerede SPINLOCK_SHARED = 0x80000000önceden tanımlanmış bir sabittir. Acaba neden (SPINLOCK_SHARED | 1) - 1dönüştürme ihtiyacımız var ? ifadenin sonucu 80000000 olur - 0x80000000 ile aynıdır, …


Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.