P3671最大异或 | |
|
问题描述
一个小女孩非常喜欢关于二进制位的问题,下面是其中一个问题:
给你两个整数L和R,找出a xor b结果值最大的一对,(L ≤ a ≤ b ≤ R)
xor表示异或,在c++里的运算符是"^"
输入格式
两个空格间隔的整数L和R (1<=L<=R<=1018)
输出格式
一个整数,表示最大的异或的结果
样例输入 1
8 16
样例输出 1
31
样例输入 2
1 2
样例输出 2
3
提示
注意:一般情况下我们只在32位数字范围内进行位运算
如果要在64位也就是long long范围内做位运算,参与运算的必须是long long类型,比如把1左移60位,我们应写成“1LL<<60”