题目:
读入一个十进制整数,将其转换为二进制数输出。
输入格式:
输入在一行中给出的一个十进制整数。
输出格式:
在一行中输其二进制数(假设16位)。
输入样例:
1234输出样例:
0000010011010010输入样例:
-1234输出样例:
1111101100101110
代码实现:
#include <stdio.h>
int main()
{
int x, i;
scanf("%d", &x);
if(x>=0){
int a[16];
for(i = 1; i<=16; i++){
if(x == 0){
a[i] = 0;
}else{
a[i] = x%2;
x = x/2;
}
}
for(i = 16; i>=1; i--){
printf("%d", a[i]);
}
return 0;
}
else{
x = -x;
int a[16];
for(i = 1; i<=16; i++){
if(x == 0){
a[i] = 0;
}else{
a[i] = x%2;
x = x/2;
}
}
for(i = 1; i<=16; i++){
if(a[i] == 1){
a[i] = 0;
}else{
a[i] = 1;
}
}
for(i = 1; i<=16; i++){
if(a[i] == 0){
a[i] = 1;
break;
}else{
a[i] = 0;
}
}
a[16] = 1;
for(i = 16; i>=1; i--){
printf("%d", a[i]);
}
return 0;
}
}

2494

被折叠的 条评论
为什么被折叠?



