當前位置:首頁 » 編程語言 » 運用數組轉換進制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

希望解答了你的問題