原码
一、题目要求
- 题目描述
对任意输入的数,请你编程输出它在机内的16位的原码。
例如7的原码是:0000000000000111,-7的原码是1000000000000111。
最左的一位是符号位,0为正,1为负。
- 输入格式
输入有若干行,每行一个整数,其绝对值小于2^15。
- 输出格式
每行对应输出一个16位的原码。
- 输入样例
7
-7
16384
- 输出样例
0000000000000111
1000000000000111
0100000000000000
二、完整代码
#include
int main()
{
int x = 0;
while (std::cin >> x)
{
if (x >= 0)
{
int a[16] = { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 };
a[0] = 0;
int m = 15;
while (x)
{
a[m] = x % 2;
x = x / 2;
m--;
}
for (int i = 0; i < 16; i++)
{
std::cout << a[i];
}
std::cout << std::endl;
}
else
{
int a[16] = { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 };
a[0] = 1;
x = -x;
int m = 15;
while (x)
{
a[m] = x % 2;
x /= 2;
m--;
}
for (int i = 0; i < 16; i++)
{
std::cout << a[i];
}
std::cout << std::endl;
}
}
}