题目描述
输入一个整型(int)的整数,输出它的 32 位二进制补码
输入描述
一个整型整数
输出描述
输出一行,即该整数的补码表示。
样例1
输入复制
7
输出
00000000000000000000000000000111
代码如下:
#include <bits/stdc++.h>
using namespace std;
int main(){
long long n;
int a[40] = {};
scanf("%lld", &n);
if(n < 0){
a[31] = 1;
n = 0 - n;
}
int i = 0;
while(n){
a[i++] = n % 2;
n /= 2;
}
if(a[31] == 1){
for(int i=0;i<31;i++) a[i] = 1 - a[i];
int x = 1;
for(int i=0;i<31;i++){
a[i] = a[i] + x;
x = a[i] / 2;
a[i] = a[i] % 2;
}
}
for(int i=31;i>=0;i--) printf("%d", a[i]);
return 0;
}