当前位置:首页 » 编程语言 » 运用数组转换进制c语言
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

运用数组转换进制c语言

发布时间: 2022-06-05 12:53:03

A. c语言字符数组如何转成16进制

#include<stdio.h>
#include<string.h>
#include<malloc.h>
intmain(void)
{
char*pKey="";
intn=strlen(pKey)/2,i;
char*Key=(char*)malloc(sizeof(char)*n);
for(i=0;i<n;++i)
{
sscanf(pKey+2*i,"%2X",Key+i);
}
for(i=0;i<n;++i)
{
printf("%#02hhX",Key[i]);
}
return0;
}

B. C语言10进制转换为2进制(使用数组)

main()
{int i=0,m,p[16];
scanf("%d",&m);
while(m)
{p[i]=m%2;
m/=2;
i++;
}
for(i--;i>=0;i--)
printf("%d",p[i]);
printf("\n");
getch();
}

C. C语言中如何用数组完成进制的转换,把十进制转化为2,8,16进制

#include <stdio.h>
#include <stdlib.h>
int main(int argc, char* argv[]){
int a,b,i,c;
b=atoi(argv[1]);
while(b!=0)
{
c=(b%16)*pow(10,i);
printf("c=%d\n",b%16);
if( (b%16) > 9 ){
switch(b%16){
case 10: printf("a\n"); break;
case 11: printf("b\n"); break;
case 12: printf("c\n"); break;
case 13: printf("d\n"); break;
case 14: printf("e\n"); break;
case 15: printf("f\n"); break;
default :break;
}
}
a=a+c;
i++;
b/=16;
}
printf("ais=%d\n",a);
return 0;
}
16进制

D. c语言 用数组实现10进制数转换为二进制,八进制,十六进制。

#include
<stdio.h>
#include
<string.h>
#include
<math.h>
/*该函数可以实现小于整型数据的任意进制之间转换*/
/*以下函数将a进制数s转换成b进制并输出*/
void
f(int
a,int
b,char
s[])
{
char
r[17];
int
i,n,t,k;
for(n=strlen(s)-1,i=t=0;*(s+i)!='';i++,n--)
/*这里先转换成十进制数*/
{
if(*(s+i)<='9')
t+=(*(s+i)-'0')*int(pow(a,n));
else
t+=(*(s+i)-'A'+10)*int(pow(a,n));
}
for(i=0;t!=0;i++)
/*再转换成b进制*/
{
k=t%b;
if(k>9)r[i]='A'+k-10;
else
r[i]='0'+k;
t/=b;
}
r[i]='';
s=strrev(r);
printf("%s",s);
}

E. C语言,使用数组,编写一个十进制正整数转换为二进制数的转换工具

#include<stdio.h>

intmain()
{
inti=0,j=0,a=0,n[100]={0};
scanf("%d",&a);
printf("input=%d ",a);
while(a)
{
n[i++]=a%2;
a/=2;
}

for(j=i-1;j>=0;j--)
{
printf("%d",n[j]);
}

printf(" ");
return0;
}

65

input=65

1000001

F. C语言,帮我写一个数组转成十进制字符串的函数。

#include<stdio.h>
char* to_dec_str(char* hex_array, char* str)
{
int i;
for(i=0;i<2;i++)
{
char t = hex_array[i];
hex_array[i] = hex_array[3-i];
hex_array[3-i] = t;
}
int* pDec = (int*)hex_array;
i = 0;
do{
str[i] = *pDec % 10 + '0';
*pDec = *pDec / 10;
i++;
}while(*pDec);
for(int j=0;j<i/2;j++)
{
char t = str[j];
str[j] = str[i-1-j];
str[i-1-j] = t;
}
str[i] = '\0';
return str;
}
int main()
{
char BUF1[]={0x11,0x22,0x33,0x44};
char BUF2[11];
to_dec_str(BUF1, BUF2);
puts(BUF2);
}

G. 在C语言中,如何用数组来实现2进制转换为10进制

问题不是很清楚,是一个'1' 和‘0’ 的char[] 作为input,然后一个int 作为结果的话,可以这样写:
比如进来时“10100010001”这样一个用char[] 表示的string的话
int convert(char * arg)
{
int result = 0;

//先找长度

int length = strlen(arg);

//用pos来找正确的bit position, 因为 index 0 对应的是bit pos, 1 对应 pos -1, etc
int pos = length - 1;

for (int i = 0; i<length; i++)

{
result + = (int)(arg[i] - '0')<<(pos - i);
}

return result;

}

如果想程序跑的快点可以加一个 #pragma omp parallel for (+:result) firstprivate(i) 在for循环前面一行, 当然如果题主不需要就当没看到这个啦, xD

希望解答了你的问题