#include <stdio.h>
#include <stdlib.h>
#include<math.h>
int main()
{
int i, j, n, b, m;
int t = 0;
int a[16] = {0};
printf("please input the decimalism number(-32767~0):\n");
scanf("%d",&n);
b = abs(n); //取正数
for( m = 0; m < 15; m++ )//正数化为二进制
{
i = b%2;
j = b/2;
b = j;
a[m] = i;
}
for( m = 0; m <= 15; m++ )//各位变反
{
if(a[m] == 1)
a[m] = 0;
else
a[m] = 1;
}
for( m = 15; m >= 0; m-- )//再转化为十进制整数
{
if(a[m] == 1)
t = t + pow(2,m);
}
t = t+1;//整数加1(相当于变反加1)
for( m = 0; m <= 15; m++ )//再化为二进制
{
i = t%2;
j = t/2;
t = j;
a[m] = i;
}
for( m = 15; m >= 0; m-- )
{
printf("%d",a[m]);
if(m%4 == 0)
printf(" ");
}
system("pause");
return 0;
}
十进制负数转化为二进制
最新推荐文章于 2021-07-17 17:12:43 发布