原码转补码(complement)
题目描述
Y 同学正在学习二进制数的编码表示。
现在给定一个长度为 的二进制字符串 ,表示一个 位二进制数的原码。
原码、反码和补码的定义如下:
- 对于正数:
- 最高位为 ,表示符号位;
- 原码、反码和补码完全相同。
- 对于负数:
- 原码的最高位为 ,其余 位表示该数绝对值的二进制;
- 反码保持最高位不变,其余每一位取反,即
0变为1,1变为0; - 补码是在反码的基础上加 ,运算结果只保留最低的 位。
请你根据给出的原码 ,求出它对应的 位补码。
输入格式
输入一行一个长度为 的二进制字符串 。
字符串 仅由字符 0 和 1 组成。
输出格式
输出一行一个长度为 的二进制字符串,表示 对应的补码。
样例
样例输入 #1
011100001111
样例输出 #1
011100001111
样例输入 #2
1111000011111
样例输出 #2
1000111100001
样例输入 #3
1000
样例输出 #3
0000
样例输入 #4
1100
样例输出 #4
1100
样例输入 #5
1010
样例输出 #5
1110
数据范围与约定
对于 的数据,保证:
- ;
- 的长度恰好为 ;
- 仅由字符
0和1组成。
| 测试点编号 | 分值 | 具体限制 | 特殊性质 |
|---|---|---|---|
| 特殊性质 A | |||
| 特殊性质 B | |||
| 特殊性质 C | |||
| 无 | |||
- 特殊性质 A:保证 的最高位为
0。 - 特殊性质 B:保证 的最高位为
1,且除符号位外至少存在一个1。 - 特殊性质 C:保证除符号位外至多存在一个
1。
京公网安备11010802045784号