题目描述
输入一个整型(int)的整数,输出它的32位二进制补码。
输入
一个整型整数。
输出
输出一行,即该整数的补码表示。
样例输入
7
样例输出
00000000000000000000000000000111
#include<bits/stdc++.h>
using namespace std;
int a,b[10000],l;
int main(){
cin>>a;
if(a>=0){
while(a>0){
b[l++]=a%2;a=a/2;}l=32;b[l-1]=0;}else{a=abs(a);
while(a>0){
b[l++]=a%2;a=a/2;}l=32;b[l-1]=1;
for(int i=l-2;i>=0;i--){
if(b[i]==0){b[i]=1;}else{b[i]=0;}}
b[0]+=1;
if(b[0]>=2){
b[0]=b[0]%2;
for(int i=1;i<l;i++){
b[i]+=1;
if(b[i]>=2){b[i]=b[i]%2;}else{break;}}}}
for(int i=l-1;i>=0;i--){cout<<b[i];}
return 0;
}