十进制转成二进制,最快的方法就是位运算
十进制数528的二进制码为:0000001000010000
将其取反(求反码)后的结果:1111110111101111
将反码加一(求补码)后结果:1111110111110000
所以,-528的二进制码为1111110111110000
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int N = 0;//Int型够了
int binary[32]; //int最大32位,0~31
int main()
{
int i = 0;
freopen("input.txt", "r", stdin);
while (1 == scanf("%d",&N) &&(-1 != N))
{
if (0 == N) printf("0\n");
//转换成二进制用位运算
for (i = 0; i < 32;i++)
{
binary[i] = N & 1;
N = N >> 1;
}
N = N;
}
return 0;
}