@chawuciren
2018-10-23T02:27:15.000000Z
字数 611
阅读 659
CSI
#include <stdlib.h>
#include <stdio.h>
void binary (int b[],int n);//输出某二进制数的补码
void binarychar (int a[],char input) ;
int main()
{
int before[32]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};//存储
int n=0;
scanf("%d",&n);//输入某数
binary(before,n);
for(int i=0;i<32;i++)
{
printf("%d\n",before[i]);//输出补码
}
return 0;
}
void binary (int a[],int n)
{
if(n>=0){ //n>0
for(int i=31;i>=0;i--)
{
a[i]=n&1; //取最后一bit
n=n>>1; //右移
}
}
if(n<0){ //n<0
n=2*2*2*2*2*2*2*2+n; //取补码
for(int i=31;i>=0;i--)
{
a[i]=n&1;
n=n>>1;
}
return;
}
void binarychar (int a[],char input) //字符转化
{
char n='input'; //n>0
for(int i=31;i>=0;i--)
{
a[i]=n&1; //取最后一bit
n=n>>1; //右移
}
return ;
}