zoukankan      html  css  js  c++  java
  • 把一个十六进制的字符串(包含0x或0X)转化成对应的数值 ASCII码

    https://88.wendadaohang.com/zd/M1aaVK1BS.html

    编写一个函数htoi(s),把一个十六进制的字符串(包含0x或0X)转化成对应的数值,并在主函数中调用该函数进行验证
    貌似不怎么行啊?那个CString是什么意思?

    #include <iostream> //#include <stdio.h>
    #include <afx.h>

    int ChangeNum(CString str,int length) //C把CString改成指针
    {
    char revstr[16]={0}; //根据十六进制字符串的长度,这里注意数组不要越界
    int num[16]={0};
    int count=1;
    int result=0;
    strcpy(revstr,str);
    for (int i=length-1;i>=0;i--) //这里是关键的变换程序
    {
    if ((revstr[i]>='0') && (revstr[i]<='9'))
    num[i]=revstr[i]-48;//字符0的ASCII值为48
    else if ((revstr[i]>='a') && (revstr[i]<='f'))
    num[i]=revstr[i]-'a'+10;
    else if ((revstr[i]>='A') && (revstr[i]<='F'))
    num[i]=revstr[i]-'A'+10;
    else
    num[i]=0;
    result=result+num[i]*count;
    count=count*16;//十六进制(如果是八进制就在这里乘以8)
    }
    return result;
    }

    int main()
    {
    CString str="0x11";
    int n=0;
    n=ChangeNum(str,str.GetLength()); //str.GetLength()用scanf()
    printf("%d ",n);
    return 0;
    }
    /*输出:
    17
    */

    参考资料: http://fiona1011.javaeye.com/blog/634541

    来自:求助得到的回答
  • 相关阅读:
    PAT 1032 (未完成)
    PAT 1031
    PAT 1030
    将爬取到的数据存入数据框并导出
    XPath常见用法
    python 图表
    Protobuf在Unity中的通讯使用
    ProtoBuf在Unity中的使用
    Unity更新资源代码
    匿名函数
  • 原文地址:https://www.cnblogs.com/sunny3158/p/14594083.html
Copyright © 2011-2022 走看看