题目描述
【题目描述】
你最好的朋友亚当最近买了一台树莓派和一些设备,包括一个无线温度传感器和一个433MHz接收器,用来接收传感器发送的信号。亚当计划使用树莓派作为他的天气传感器的门内显示器。由于他非常擅长电子技术,他很快就设法让接收器接收传感器的信号。然而,当他查看传感器发送的字节时,他无法识别它们的头部或尾部。在浏览了很多网站几个小时后,他发现了一份文件,解释说他的天气传感器会扰乱它发送的数据,以防止它与其他制造商的产品一起使用。
幸运的是,该文档还描述了传感器是如何扰乱通信的。该文档指出,传感器将表达式x^(x<<1)应用于发送的每个字节。^运算符是位XOR,例如10110000^01100100=11010100。<<运算符是字节值左移,例如10111001<<1=01110010。
为了让Adam's Raspberry Pi正确解释天气传感器发送的字节,需要对传输进行解扰。然而,Adam并不擅长编程(实际上他是一个相当糟糕的程序员)。所以他请你帮助他,作为一个好朋友,你总是乐于助人。你能帮亚当实现解扰算法吗?
【输入】
一行带有整数n(1≤n≤100000),即天气传感器发送的消息中的字节数;
一行具有n个整数b1,...,bn(对于所有i,0≤bi≤255),消息的字节值。
【输出】
输出n个字节的值(以十进制编码),即未加扰的消息。
【样本输入1】
5
58 89 205 20 198
【样本输出1】
22 55 187 12 66
【说明】
在逐位XOR中,结果的第i位是1,当且仅当两个自变量中恰好有一个设置了第i位。
在x<<j中,x的位向左移动j步。x的j个最高有效位被丢弃,并且j个零被添加作为结果的最低有效位。
样例输入 复制
5
58 89 205 20 198
样例输出 复制
22 55 187 12 66