十六进制字符串转化为十进制整数

代码:

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之间
  {
    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;
}

参考:c语言中如何将16进制字符串转化成10进制整数

原文地址:https://www.cnblogs.com/Tang-tangt/p/9858963.html

时间: 2024-10-30 21:02:13

十六进制字符串转化为十进制整数的相关文章

数组-08. 字符串转换成十进制整数

数组-08. 字符串转换成十进制整数(15) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 张彤彧(浙江大学) 输入一个以#结束的字符串,本题要求滤去所有的非十六进制字符(不分大小写),组成一个新的表示十六进制数字的字符串,然后将其转换为十进制数后输出.如果过滤后字符串的首字符为“-”,代表该数是负数. 输入格式: 输入在一行中给出一个以#结束的非空字符串. 输出格式: 在一行中输出转换后的十进制数.题目保证输出在长整型范围内.

5-2?字符串转换成十进制整数

5-2 字符串转换成十进制整数   (15分) 输入一个以#结束的字符串,本题要求滤去所有的非十六进制字符(不分大小写),组成一个新的表示十六进制数字的字符串,然后将其转换为十进制数后输出.如果在第一个十六进制字符之前存在字符"-",则代表该数是负数. 输入格式: 输入在一行中给出一个以#结束的非空字符串. 输出格式: 在一行中输出转换后的十进制数.题目保证输出在长整型范围内. 输入样例: +-P-xf4+-1!# 输出样例: 这个题有一个坑点: 就是如果是0的话前面没有负号 -390

数组-08. 字符串转换成十进制整数(15)

1 #include<iostream> 2 #include<string> 3 using namespace std; 4 int main(){ 5 string s; 6 int i,sum=0; 7 bool flag=false,f=false; 8 getline(cin,s); 9 for(i=0;s[i]!='#';++i){ 10 if(s[i]=='-'&&!flag) 11 f=true; 12 else if(s[i]<='9'&a

十六进制字符串转化成字符串输出

///<summary> /// 从16进制转换成汉字 /// </summary> /// <param name="hex"></param> /// <param name="charset">编码,如"utf-8","gb2312"</param> /// <returns></returns> public string

labVIEW将字符串解释成十六进制并转化为十进制

作用:将ASCII当做成十六进制来表示,并计算这个十六进制数对应的十进制大小 例如:008A本身对应的ASCII码用十六进制表示为为30 30 38 41,但有些协议中将008A当成0x008A来表示,所以需要将008A阐释为0x008A,则对应的十进制大小为139

十六进制字符串转十进制整数

十六进制字符串转十进制整数 编写一个函数,函数接收一个字符串,是由十六进制数组成的一组字符串,函数的功能是把接到的这组字符串转换成十进制数字.并将十进制数字返回. #include <iostream> using namespace std; // 十六进制字符串的最大长度 #define MAX_HEX_STR_LEN 100 bool hexToDec(char shex[], int & idec) { size_t i = 0, len = 0; int mid = 0; l

十进制整数如何转化为二进制和十六进制

对于十进制整数转化为二进制,采取除二取余的方法.举例说明:28.28/2=14--0 取014/2=7--0 取07/2=3--1 取13/2=1--1 取11/2=0--1 取1 然后逆着排序,则27的二进制为11100. 对于十进制转化为十六进制,采取除16取余的方法.十六进制数码组成为0.1.2.3.4.5.6.7.8.9.A.B.C.D.E.F举例说明:527.527/16=32--15(即F) 取f32/16=2--0 取02/16=0--2 取2 然后逆着排序,则527的十六进制为2

十六进制字符串转十进制整数,诡异的问题,Linux和Windows结果不同

static int HexAToInt(char *str, int length) { char  revstr[16] = { 0 };  //根据十六进制字符串的长度,这里注意数组不要越界 int   num[16] = { 0 }; int   count = 1; int   result = -1; if (NULL != str) { strncpy(revstr, str, length); for (int i = length - 1; i >= 0; i--) { if

VC中,如何将十六进制字符串转换为十进制数?

原文链接:http://blog.csdn.net/bennyfun79/article/details/6934843 在程序中,我们有时需要将一个十六进制字符串转换为十进制数字.比如: 1 char *ptr="0x11"; 2 int n=0; 3 //我们想让n等于0x11,即17 通常我们在C中,想将一个字符串转换为一整形数字,通常会使用下面的方法: view plaincopy to clipboardprint? 1 char *ptr="123";