欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

请输入一个十六进制数,并输出相对应的二进制整数

程序员文章站 2022-07-15 09:41:20
...

输入要求:输入一个不超过8位的十六进制数

输出要求:二进制数
样例输入:2af
样例输出:1010101111
样例输入:38
样例输出:111000

#include<stdio.h>
#include<math.h>
int main()
{
	int a[100], i = 0, j, k, m = 0, n = 0, sum1;
	char c[100];
	double sum = 0;
	while ((c[i] = getchar()) != '\n')
	{
		if (c[i] >= 'A' && c[i] <= 'Z')
		{
			c[i] = c[i] - 55;
		}
		if (c[i] >= 'a' && c[i] <= 'z')
		{
			c[i] = c[i] - 87;
		}
		if (c[i] >= '0' && c[i] <= '9')
		{
			c[i] = c[i] - 48;
		}
		i++;
	}
	for (j = i - 1; j >= 0; j--)
	{
		sum = sum + c[j] * pow(16, m);
		m++;
	}
	sum1 = (int)sum;
	while (sum1 != 0)
	{
		a[n] = sum1 % 2;
		sum1 = sum1 / 2;
		n++;
	}
	for (k = n - 1; k >= 0; k--)
	{
		printf("%d", a[k]);
	}
}

不懂再问哈

相关标签: c语言