c语言中如何将16进制字符串转化成10进制整数? 如何用C语言将一个十六进制数字转换为十进制

C\u8bed\u8a00\u7f16\u7a0b\uff08\u5c06\u5341\u516d\u8fdb\u5236\u5b57\u7b26\u4e32\u8f6c\u6362\u4e3a\u5341\u8fdb\u5236\u6574\u6570 \uff09

number=0;
k=0;

for(i=0;s[i]!='\0';i++)
{

ch=s[i];
if(ch>='0'&&ch='a'&&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';

}

\u9700\u8981\u51c6\u5907\u7684\u6750\u6599\u5206\u522b\u6709\uff1a\u7535\u8111\u3001C\u8bed\u8a00\u7f16\u8bd1\u5668\u3002
1\u3001\u9996\u5148\uff0c\u6253\u5f00C\u8bed\u8a00\u7f16\u8bd1\u5668\uff0c\u65b0\u5efa\u4e00\u4e2a\u521d\u59cb.cpp\u6587\u4ef6\uff0c\u4f8b\u5982\uff1atest.cpp\u3002

2\u3001\u5728test.cpp\u6587\u4ef6\u4e2d\uff0c\u8f93\u5165C\u8bed\u8a00\u4ee3\u7801\uff1aint a = 0XFFFF;printf("%d", a);\u3002

3\u3001\u7f16\u8bd1\u5668\u8fd0\u884ctest.cpp\u6587\u4ef6\uff0c\u6b64\u65f6\u6210\u529f\u5c06\u5341\u516d\u8fdb\u5236\u6570\u8f6c\u6362\u4e3a\u5341\u8fdb\u5236\u8fdb\u884c\u4e86\u8f93\u51fa\u3002

1、输入字符串
3、反转字符串,并赋给字符串数组A
2、循环检测数组A,依次检测1每个字符
5、判断当前检测的字符,如果属于ABCDEF,则依次把ABCDEF 转换为11....16,否则不做任何操作
6、累加,当前循环次数的16次方乘以当前字符的数值大小。
7、输出总累加值就是10进制整数

#include <stdio.h>
#include <stdlib.h>
#include <string.h >
int zh(char s[])
{
int i,m,temp=0,n;
m=strlen(s);//十六进制是按字符串传进来的,所以要获得他的长度
for(i=0;i<m;i++)
{
if(s[i]>='A'&&s[i]<='F')//十六进制还要判断他是不是在A-F或者a-f之间a=10。。
n=s[i]-'A'+10;
else if(s[i]>='a'&&s[i]<='f')
n=s[i]-'a'+10;
else n=s[i]-'0';
temp=temp*16+n;
}
return temp;
}
int main()
{
char s[10];
gets(s);
int n=zh(s);
printf("%d\n",n);
return 0;
}

C语言_012_十六进制转十进制



  • C璇█ 鍗佸叚杩涘埗瀛楃涓茶浆鍗佽繘鍒
    绛旓細include <stdio.h>#include <string.h>void main(){ int i=0,j=0,result=0,index=0,cindex=0; char a[100],b[100],c[4]; gets(a);//杈撳叆鏁版嵁 for(i=0 ; i<strlen(a); i++) { /*灏16杩涘埗杞崲鎴10杩涘埗*/ if(a[i]>='a' && a[i]<='z') ...
  • c璇█涓浣曟妸涓涓瀛楃鎸16杩涘埗杞寲涓烘暣鏁板憿?(鎸10杩涘埗杞寲鍛)
    绛旓細int fun(char str){ int temp=0;while(*str){ temp*=16;if (*str<='9'&&*str>='0')temp+=*str-'0';else if (*str<='f'&&*str>='a')temp+=*str-'a'+10;else return -1;str++;} return temp;} 鎴戜及璁′綘瑕佺殑鏄濡備綍鎶婂瓧绗︿覆褰㈠紡鐨16杩涘埗鏁杞寲鎴10杩涘埗int鍨嬫暟鍚с備笂闈㈢殑...
  • 姹備竴涓c璇█绋嬪簭浠g爜,鍙互鎶16杩涘埗鏁涓茶浆ascll鐮
    绛旓細鍒嗘瀽棰樼洰锛61鍒氬ソ鏄痑鐨刟scii鍗佸叚杩涘埗鍊硷紝鍥犳锛屽彧闇瑕佸皢鈥6鈥欌1鈥杞崲鎴鏁板0x61灏卞彲浠ヤ簡锛屼互涓嬮噰鐢ㄧЩ浣嶆柟娉曟潵杞崲#include<stdio.h>int main(){int i;char str[128],ch=0;gets(str);for( i=0;str[i];i++ ){if ( str[i]>='0' && str[i] <= '9' ){ch <<= 4 ; //鍏堝乏...
  • C璇█鎶16杩涘埗瀛楃涓茶浆鎹㈡垚瀛楄妭鏁扮粍
    绛旓細include <stdio.h>int Change(char s[],char bits[]) {int i,n = 0;for(i = 0; s[i]; i += 2) {if(s[i] >= 'A' && s[i] <= 'F')bits[n] = s[i] - 'A' + 10;else bits[n] = s[i] - '0';if(s[i + 1] >= 'A' && s[i + 1] <= 'F')bits[...
  • 姹C璇█灏嗗崄鍏繘鍒跺瓧绗︿覆杞崲涓烘暣鍨媔nt鐨勫嚱鏁版簮浠g爜,瑕佹眰涓嶈兘鐢ㄥ簱鍑芥暟...
    绛旓細for (j = 0;j < i;j++) num16[j] = toupper(num16[j]); // 灏忓啓瀛楁瘝杞崲鎴澶у啓锛屽叾浠瀛楃涓嶅彉 for (j = i - 1;j >= 0;j--) { // 寮濮嬭浆鎹 if (isalpha(num16[j])) num10 = num10 + cocnvertfactor*(num16[j] - 'A' + 10);else num10 = num10 + coc...
  • ...瀹鎶涓涓〃绀10/8/16杩涘埗鏁鐨勫瓧绗︿覆杞崲鎴瀵瑰簲鐨勬暣鏁板.
    绛旓細include <stdio.h>int hexadecimal(char*);int octal(char*);int decimal(char*);int main(void){char ch[10]="";int num=0;scanf("%s",ch);// 鍗佽繘鍒;鍏繘鍒朵互0寮濮;鍗佸叚杩涘埗浠0x鎴0X寮濮媔f(ch[0]=='0'&&(ch[1]=='x'||ch[1]=='X'))num=hexadecimal(ch+2);else if(ch[...
  • c璇█鍒ゆ柇鏄惁涓哄悎娉16杩涘埗瀛楃涓,鍐嶈浆鎴10杩涘埗?
    绛旓細c璇█琛ㄧず16杩涘埗锛0x寮澶达紙x鍙ぇ鍐欏彲灏忓啓锛夛紝鍚庨潰璺0~9锛孉~F鐨勫瓧绗銆傝緭鍏ユ寜鐓т笂闈㈣鍒欓獙璇佽緭鍏ワ紝寮澶翠袱涓瓧绗﹀彲涓嶇敤杈撳叆锛屽浐瀹氬垵鍊笺傚悗闈㈠惊鐜帴鏀跺瓧绗﹁緭鍏ュ苟楠岃瘉銆16杩涘埗杞10杩涘埗灏辨槸浠庝釜浣嶅紑濮嬪彇锛屼緷娆′箻16鐨刵娆℃柟锛坣鍒濆0锛夛紝涔嬪悗灏嗕箻绉疮鍔犮傛病鏈夌敤鎸囬拡锛侊紙杈撳叆鐨勫瓧绗︽暟缁勪綔涓鸿繑鍥炲艰繑鍥炲繀椤荤敤鎸囬拡...
  • C璇█ 16杩涘埗鐨勫瓧绗︿覆鈥000100010019鈥 杞寲鎴怋yte byte[6] = {0x0...
    绛旓細include <stdio.h>typedef unsigned char Byte;void s2bytes(char *str, Byte *r){ int i=0; Byte b; while(*(str+i)!='\0') { b=(*(str+i)-'0')*16+ *(str+i+1)-'0'; i+=2; *r++=b; }}int main() { char str[]="000100010019"; Byte ba[6]; i...
  • c璇█涓16杩涘埗杞崲涓鍗佽繘鍒
    绛旓細鏈绠鍗曠殑浣跨敤scanf()鍑芥暟鍜宲rintf()鍑芥暟杩涜鏍煎紡杞崲锛屼互16杩涘埗鏍煎紡杈撳叆锛屽啀浠10杩涘埗鏍煎紡杈撳嚭銆傜▼搴忎唬鐮佸涓嬶細include<stdio.h> int main(){ int a=0;int i=0;scanf("%x",&a);printf("%d",a);return 0;} 杩愯缁撴灉锛
  • C璇█涓崄鍏繘鍒跺瓧绗鏁扮粍杞寲涓瀛楃涓
    绛旓細include <stdio.h> unsigned char s_des[100] = {0};int length = 9;unsigned char s_src[length] = {0xFE,0x01,0x52,0xFF,0xEF,0xBA,0x35,0x90,0xFA};unsigned char IntToHexChar(unsigned char c){ if (c > 9)return (c + 55);else return (c + 0x30);} int main...
  • 扩展阅读:字符转16进制 对照表 ... 字符怎么转换为16进制 ... 字符串转16进制 c ... c中怎么定义字符串 ... 在线16进制转换字符串 ... 16进制在线转换器 ... 字符串长度怎么自己数 ... c语言怎么直接输出汉字 ... 16进制内码转换汉字在线 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网