La manipolazione di singoli bit. Gli operatori utilizzati possono includere AND bit a bit, OR, XOR, NOT, spostamento a sinistra e spostamento a destra.
Mi sono imbattuto in un caso (apparentemente) molto strano. Prendi il numero 2 ( 0b10) e mascheralo con 1 ( 0b01) Questo dovrebbe produrre 0b00che è equivalente a 0. Tuttavia, ecco dove entra in gioco il signor Schrödinger: var_dump(0b10 & 0b01); // int(0) var_dump(0b10 & 0b01 == 0); // int(0) …
Ho bisogno di una funzione come questa: // return true iff 'n' is a power of 2, e.g. // is_power_of_2(16) => true is_power_of_2(3) => false bool is_power_of_2(int n); Qualcuno può suggerire come potrei scrivere questo? Puoi dirmi un buon sito web in cui è possibile trovare questo tipo di algoritmo?
Gli operatori di spostamento sinistro e destro (<< e >>) sono già disponibili in C ++. Tuttavia, non sono riuscito a scoprire come eseguire operazioni di spostamento circolare o rotazione. Come possono essere eseguite operazioni come "Ruota a sinistra" e "Ruota a destra"? Rotazione a destra due volte qui Initial …
Citando il codice per calcolare il valore assoluto intero (abs) senza diramazioni da http://graphics.stanford.edu/~seander/bithacks.html : 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 + …
Ho letto che l'ordine dei campi di bit all'interno di una struttura è specifico della piattaforma. E se utilizzo diverse opzioni di imballaggio specifiche del compilatore, i dati di garanzia verranno archiviati nell'ordine corretto così come vengono scritti? Per esempio: struct Message { unsigned int version : 3; unsigned int …
Devo verificare se le posizioni (da 0 a 31 per un numero intero a 32 bit) con valore di bit 1 formano una regione contigua. Per esempio: 00111111000000000000000000000000 is contiguous 00111111000000000000000011000000 is not contiguous Voglio che questo test, cioè qualche funzione has_contiguous_one_bits(int), sia portatile. Un modo ovvio è quello di …
Se ho un numero intero a 64 bit che sto interpretando come un array di numeri interi a 8 bit compressi con 8 elementi. Devo sottrarre la costante 1da ogni intero compresso durante la gestione dell'overflow senza che il risultato di un elemento influisca sul risultato di un altro elemento. …
Stavo leggendo un codice del kernel, e in un posto ho visto un'espressione dentro una ifdichiarazione come if (value == (SPINLOCK_SHARED | 1) - 1) { ............ } dove SPINLOCK_SHARED = 0x80000000è una costante predefinita. Mi chiedo perché ne abbiamo bisogno (SPINLOCK_SHARED | 1) - 1- ai fini della conversione …
Sto lottando con questo problema che ho trovato in un libro di programmazione competitivo, ma senza una soluzione su come farlo. Per due interi interi A e B (può andare bene nel tipo intero a 64 bit), dove A è dispari, trova una coppia di numeri X e Y in …
Di recente stavo lavorando a un progetto personale quando mi sono imbattuto in uno strano problema. In un ciclo molto stretto ho un numero intero con un valore compreso tra 0 e 15. Ho bisogno di ottenere -1 per i valori 0, 1, 8 e 9 e 1 per i …
We use cookies and other tracking technologies to improve your browsing experience on our website,
to show you personalized content and targeted ads, to analyze our website traffic,
and to understand where our visitors are coming from.
By continuing, you consent to our use of cookies and other tracking technologies and
affirm you're at least 16 years old or have consent from a parent or guardian.