A. c語言編程(將十六進制字元串轉換為十進制整數 )
number=0;
k=0;
for(i=0;s[i]!='\0';i++)
{
ch=s[i];
if(ch>='0'&&ch<='9'||ch>='a'&&ch<='f'||ch>='A'&&ch<='F')
num[k++]=ch;
}
num[k]='\0'
for(i=0 ;num[i]!='\0',i++)
{
ch=num[i];
if(ch>='0'&&ch<='9')
number=numbe*16+ch-'0';
else if(ch>='a'&&ch<='f')
number=number*16+ch-'a';
else if(ch>='A'&&ch<='F')
number=number*16+ch-'A';
}
B. c語言中,將字元轉換為十進制的程序
字元轉為10進制 用sscanf或者用atoi均可
以字元串中, 本身為10進制字元串為例
用sscanf程序如下:
#include<stdio.h>
intmain()
{
chars[20];
inti;
scanf("%s",s);
sscanf(s,"%d",&i);
printf("%d ",i);
return0;
}
C. 將字元串轉換為十進制整數(用C語言)
應該就是這樣
#include <stdio.h>
#include <string.h>
int main( )
{
char data[ 1000 ];
int i, t;
scanf("%s", data);
for ( i = 0; i < strlen( data ) - 1; i++ )
{
if ( data[ i ] == '#' )
{
printf("%d\n", t);
t = 0;
}
else
{
if ( data[ i ] >= '0' && data[ i ] <= '9' )
t = t * 10 + data[ i ] - '0';
}
}
return 0;
}
D. C語言中字元串如何轉換為二進制、八進制、十進制、十六進制
什麼意思,?沒懂,,,是說轉為 2 8 16進制的整數?
只要是整數 int。就只有大小。沒有進制的區別。
所謂的進制,只是為了人為識別。
但是可以把整數,轉換為響應進制的字元串。
舉例
char num[] = "15";
int val = atoi(num); //字元串轉為整數
char tem[16] = {};
_itoa(val,tem,2);//整數轉為2進制字元串
_itoa(val,tem,8);//8進制
_itoa(val,tem,16);//16進制
_itoa(val,tem,10);
E. C語言 十六進制字元串轉十進制
#include<stdio.h>
#include<string.h>
voidmain()
{
inti=0,j=0,result=0,index=0,cindex=0;
chara[100],b[100],c[4];
gets(a);//輸入數據
for(i=0;i<strlen(a);i++)
{
/*將16進制轉換成10進制*/
if(a[i]>='a'&&a[i]<='z')
result=result*16+a[i]-'a'+10;
elseif(a[i]>='A'&&a[i]<='Z')
result=result*16+a[i]-'A'+10;
else
result=result*16+a[i]-'0';
/*每兩位處理一次*/
if(i%2!=0)
{
cindex=0;
do
{
c[cindex++]=result%10+'0';//倒序存放在c中
result/=10;
}while(result!=0);
for(j=cindex-1;j>=0;j--)//翻轉後存放在b中
b[index++]=c[j];
}
}
b[index]='