http://acm.hit.edu.cn/hoj/problem/view?id=2989
http://acm.hit.edu.cn/hoj/problem/view?id=3015
二进制转换
#include <stdio.h>
#include <math.h>
#include <string.h>
int main()
{
int k, i, j, d;
int bin[32] = {0};
char str[4];
while (scanf("%d",&k) != EOF)
{
getchar();
for (i = 0; i < k; i++)
{
gets(str);
if( strcmp(str, "- -") == 0 )
bin[i] = 1;
else
bin[i] = 0;
}
d = 0;
for (j = k-1; j >= 0; j--)
d += bin[j] * pow(2, k-1-j);
printf("%d\n", d);
}
return 0;
}http://acm.hit.edu.cn/hoj/problem/view?id=3015
#include<stdio.h>
int main()
{
int n, k, i, j;
int tbin[24], bin[24];
while (scanf("%d %d", &n, &k) != EOF)
{
if ( (n == 0) && (k == 0)
break;
for (i = 0; i < 24; i++)
{
tbin[i] = n % 2;
n = n / 2;
}
for (i = 0; i < 24; i++)
{
bin[i] = tbin[23-i];
}
for (j = 24 - k; j < 24; j++)
{
if (bin[j] == 0)
printf("---\n");
else
printf("- -\n");
}
printf("\n");
}
return 0;
}
本文提供了两个C语言程序实例,用于实现二进制数与十进制数之间的相互转换。第一个程序将二进制字符串转换为对应的十进制整数;第二个程序则相反,将输入的十进制数转换为固定长度的二进制字符串形式。
392

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



