#D0647. [DAY24]33位补码

[DAY24]33位补码

题目描述

33DAI 喜欢 33 位二进制数,现在给你一个 232+12321-2^{32}+1\sim 2^{32}-1 范围内的整数,请你输出其用 3333 位二进制下的原码、反码、补码。

  • 原码:首位表示符号,剩余位置为原数绝对值的二进制。
  • 反码:正数反码与原码一致,负数除符号位外,所有位置取反。
  • 补码:正数补码与原码一致,负数在反码基础上加 11

输入格式

输入包含多组测试数据。

第一行是一个整数 TT (1T101 \le T \le 10),表示测试数据的组数。

接下来 TT 行,每行包含一个数 aa,即你要输出的数。

输出格式

对于每组测试数据,输出一行,空格隔开三种编码。

4
33
-33
4294967295
-4294967295
000000000000000000000000000100001 000000000000000000000000000100001 000000000000000000000000000100001 
100000000000000000000000000100001 111111111111111111111111111011110 111111111111111111111111111011111 
011111111111111111111111111111111 011111111111111111111111111111111 011111111111111111111111111111111 
111111111111111111111111111111111 100000000000000000000000000000000 100000000000000000000000000000001 

数据规模与约定

对于 100%100\% 的数据,1T1001 \le T \le 100232+1a2321-2^{32}+1\le a\le 2^{32}-1

  • 子任务 1(30 分):保证 0<a0\lt a
  • 子任务 2(30 分):保证 1a1-1\le a\le 1
  • 子任务 3(40 分):没有特殊限制。