From eedc5335217180d2b540966913a2cb33460b8818 Mon Sep 17 00:00:00 2001 From: Dmitry Kokorin Date: Mon, 12 Sep 2016 16:22:59 +0300 Subject: [PATCH] maximizing-xor: c++ implementation --- .../maximizing-xor/maxXor.cpp | 22 +++++++++++++++++++ .../bit-manipulation/maximizing-xor/maxXor.py | 1 + 2 files changed, 23 insertions(+) create mode 100644 algorithms/bit-manipulation/maximizing-xor/maxXor.cpp diff --git a/algorithms/bit-manipulation/maximizing-xor/maxXor.cpp b/algorithms/bit-manipulation/maximizing-xor/maxXor.cpp new file mode 100644 index 0000000..5fc4b6c --- /dev/null +++ b/algorithms/bit-manipulation/maximizing-xor/maxXor.cpp @@ -0,0 +1,22 @@ +#include +#include + +using namespace std; + +int main() +{ + uint32_t L, R, M; + cin >> L >> R; + M = L^R; + + M--; + M |= M >> 1; + M |= M >> 2; + M |= M >> 4; + M |= M >> 8; + M |= M >> 16; + + cout << M; + + return 0; +} diff --git a/algorithms/bit-manipulation/maximizing-xor/maxXor.py b/algorithms/bit-manipulation/maximizing-xor/maxXor.py index 2ec28cf..d58f2bf 100755 --- a/algorithms/bit-manipulation/maximizing-xor/maxXor.py +++ b/algorithms/bit-manipulation/maximizing-xor/maxXor.py @@ -18,5 +18,6 @@ if __name__ == "__main__": R = int(input()) A, B, M = maxXor(L, R) print("{}^{} = {}".format(A, B, M)) + print("{}^{} = {}".format(bin(A), bin(B), bin(M)))