题目描述
题目描述
给定一个表达式,只包含 |& 和数字,| 表示按位或,& 表示按位与。
“&” 的优先级比 “|” 高,所以计算时要遵循以下规则:
(1)同时有“|”和“&”的,先算最左边的“&”。
(2)只有“|”或者只有“&”的,先算最左边的“|”或“&”。
我们不止要计算表达式的值,还要计算最高的比特位翻转的次数。我们保证表达式中所有数都是 8 位无符号整数,范围是 0∼255,其中 0∼127 的最高位是 0,128∼255 的最高位是 1。
对于每次运算,如果计算结果的最高位和运算符左边的运算数的最高位不同,那么就记录一次翻转。
输出表达式的值和计算过程中最高位的翻转次数。
输入格式
一行字符串,表示要计算的表达式。
对于 100% 的数据, 输入的字符序列长度 。
出现的每个整数都在 0∼255 之内。
输出格式
输出两个整数,分别表示表达式的值和计算过程中最高位的翻转次数。
样例输入
52|129&0
样例输出
52 1
提示
首先计算 129&0 计算结果是 0,最高位和运算符左边的 129 不同,翻转一次。
然后计算 52|0 计算结果是 52,最高位和运算符左边的 52 相同,不翻转。
52|129&0
52 1
52|129&0
52 1
52|129&0
52 1