In breve: No, non è consigliabile usare "aritmetica binaria" (nel senso che la domanda lo richiede) o "C style" in C ++ .
Cosa ti fa pensare che l'aritmetica bit a bit sarebbe davvero più veloce? Puoi lanciare le operazioni bit a bit su tutto il codice, ma cosa lo renderebbe più veloce?
Il fatto è che quasi qualsiasi cosa banale che stai cercando di risolvere, può essere risolta più facilmente dalle funzioni standard di alto livello (inclusi gli algoritmi standard della libreria, STL e STL). In alcuni casi specifici potresti davvero voler cambiare i singoli bit, ad esempio quando lavori con maschere di bit . Oppure memorizzare dati molto compatti, ad esempio quando si scrive un algoritmo di compressione, un formato di file denso o si lavora ad esempio con sistemi incorporati.
Se ti preoccupi delle prestazioni, sempre scrivi prima un algoritmo semplice e banale. Falla funzionare. Quindi, misura il tempo che il tuo algoritmo assume con un input tipico. Ora, se a questo punto senti che è troppo lento, solo allora puoi provare l'ottimizzazione a mano con questi trucchi "aritmetici bit a bit". E dopo aver finito, misura se il tuo codice è più veloce. È probabile che non lo sia, a meno che tu non sappia davvero cosa stai facendo in quella specifica situazione / caso.
Francamente, il modo migliore per comprendere questo tipo di costrutti di basso livello che si occupano di prestazioni è studiare il linguaggio dell'assemblaggio. Ti fa davvero capire che no, scrivere un po 'di codice di manipolazione dei bit non è più veloce che usare sort(begin(v),end(v))
. Solo perché si opera a basso livello non significa che si opera velocemente. In generale, gli algoritmi sono più importanti dei dettagli di implementazione!
Sostanzialmente qualunque sia lo " stile C " significa, per favore , stai lontano da esso quando scrivi C ++. Sono due lingue completamente diverse. Non mescolarli.
Bjarne Stroustrup ha tenuto una bella chiacchierata sullo stile C ++ nella conferenza Microsoft GoingNative 2012 a febbraio, per favore guarda: link
Specialmente le parti tra 10 e 15 minuti sono grandi, quando parla del vecchio codice in stile C rispetto al moderno stile C ++.