In short: No, it is not any good to use "binary arithmetic"(in sense the question asks it) or "C style" in C++.
What makes you believe bitwise arithmetic would be any faster really? You can throw your bitwise operations all over the code, but what would make it any faster?
The thing is, almost whatever trivial thing you're trying to solve, can be solved easier by the standard high-level features(including the standard library, STL and STL algorithms). In some specific cases you might indeed want to switch the individual bits, for example when working with bitmasks. Or storing very compact data, for example when writing a compression algorithm, a dense file format or working for example with embedded systems.
If you are concerned with performance, always write a simple and trivial algorithm first. Just make it work. Then, measure the time your algorithm takes with typical input. Now, if you at this point feel that it is too slow, only then you can try optimizing it by hand with these "bitwise arithmetic" tricks. And after done, measure if your code is any faster. The chances are that it is not, unless you really know what you are doing in that specific situation/case.
Frankly, the best way to understand about this kind of low-level constructs which deal with performance is to study assembly language. It really makes you realize that no, writing some bit-manipulating wizzcode is not any faster than using that sort(begin(v),end(v))
. Just because you operate at low level doesn't mean you operate fast. In general, Algorithms are more important than implementation details!
Basically whatever the "C style" means, please, stay away from it when writing C++. They are two completely different languages. Don't mix them.
Bjarne Stroustrup gave a great talk about C++ style in Microsoft's GoingNative 2012 conference this February, please take a look: http://channel9.msdn.com/Events/GoingNative/GoingNative-2012/Keynote-Bjarne-Stroustrup-Cpp11-Style
Especially the parts between around 10 and 15 minutes are great, when he talks about old C-style code compared to modern C++ style.
mul
is generally just as fast asshl
, and in some cases could be faster. Don't try to out-optimize the compiler based on possibly-antiquated knowledge.)