U601307 二进制加法糕兽(insane version)
题目背景
二进制加法与十进制加法相似,两个数相加时,是位对位处理的,从最低的一对位(右边)开始,依序将每一对位进行加法运算。二进制中任何相邻两数位之间的进率为$2$,所以二进制加法按逢二进一的法则进行计算。
5与9的二进制加法:
$$ \begin{array}{r}
101\\
+1001\\
\hline
1110
\end{array} $$
题目描述
小花最近学会了二进制加法,但还无法正确处理进位运算。\
例如 $3$(二进制下: $11$ )与 $1$(二进制下: $01$ )相加时,
- 个位 $1+1=0$(不进位)
- 十位 $1+0=1$
小花的计算结果为 $2$(二进制下: $10$ )。\
现在,小花尝试使用二进制加法对区间 $[l,r]$内的所有整数进行累加操作:从 $l$开始,依次将$l+1,l+2,…,r$累加到计算结果上。求出她计算出的错误结果的十进制形式。
输入格式
第一行一个整数 $T$ ,表示测试数据组数。\
接下来每组数据,一行两个正整数 $l, r$
输出格式
对于每组测试数据,输出一个整数表示所求答案
说明/提示
对于第一组测试数据:\
$101(5)+110(6)=011,$\
$011+111(7)=100,$\
$100+1000(8)=1100,$\
$1100+1001(9)=0101,$\
因此,小花错误的计算结果在十进制下是 $5$.
【数据范围】
$1 ≤ T ≤ 2\times10^{5}$, $1 \leq l \leq r \leq 10^{18}, r - l \leq 10^{18} $