如何将字符串中的10进制数和16进制数提取出来,看以下代码:

#include <stdio.h>
typedef char TUINT8 ;
typedef int  TUINT32;

TUINT32 Read_DecNumber(const TUINT8* str);
TUINT32 Read_HexNumber(const TUINT8* str); 

int main(void)
{
	int ret = Read_DecNumber("1000");
	int d = Read_HexNumber("A");
	printf("将字符串中的数字转化为10进制数 :%d\n",ret);
	printf("将字符串中的16进制数转化为10进制数 :%d\n",d);
	return 0 ;
}
//将字符串中的数字转化为10进制数
TUINT32 Read_DecNumber(const TUINT8* str)
{
    TUINT32 value;

    if (! str)
    {
        return 0;
    }
    value = 0;
    while ((*str >= '0') && (*str <= '9'))
    {
        value = value*10 + (*str - '0');
        str++;
    }
    return value;
}
//将字符串中的16进制数转化为10进制数
TUINT32 Read_HexNumber(const TUINT8* str)
{
    TUINT32 value;

    if (! str)
    {
        return 0;
    }
    value = 0;
    while (1)
    {
        if ((*str >= '0') && (*str <= '9'))
        {
            value = value*16 + (*str - '0');
        }
        else if ((*str >= 'A') && (*str <= 'F'))
        {
            value = value*16 + (*str - 'A') + 10;
        }
        else if ((*str >= 'a') && (*str <= 'f'))
        {
            value = value*16 + (*str - 'a') + 10;
        }
        else
        {
            break;
        }
        str++;
    }
    return value;
}

运行结果:

C语言实现字符串中(10进制和16进制)转成十进制数的更多相关文章

  1. golang中字符串、数值、2进制、8进制、16进制、10进制、日期和字符串之间的转换

    package main import ( "fmt" "reflect" "strconv" "time" ) fun ...

  2. python中2进制、10进制、16进制等之间的转换

    10转2: bin(8) # '0b1000' 2转10: int( 10转16: hex(15) # '0xf' 16转10: int( 2进制和16进制中间通过转10进制可以相互转换 from b ...

  3. c# 关于10进制和16进制转换以及显示

    直接举例说明: int i = 15;//一个10进制数 string txt = Convert.ToString(i,16);//将上面10进制以16进制形式显示为f string s = &qu ...

  4. C# 2进制、8进制、10进制、16进制...各种进制间的转换(三) 数值运算和位运算

    一.数值运算 各进制的数值计算很简单,把各进制数转换成 十进制数进行计算,然后再转换成原类型即可. 举例 :二进制之间的加法 /// <summary> /// 二进制之间的加法 /// ...

  5. C 语言实例 - 字符串中各种字符计算

    C 语言实例 - 字符串中各种字符计算 C 语言实例 C 语言实例 计算字符串中的元音.辅音.数字.空白符. 实例 #include <stdio.h> int main() { ]; i ...

  6. C语言:将ss所指字符串中所有下标为奇数位上的字母转换成大写,若不是字母,则不转换。-删除指针p所指字符串中的所有空白字符(包括制表符,回车符,换行符)-在带头结点的单向链表中,查找数据域中值为ch的结点,找到后通过函数值返回该结点在链表中所处的顺序号,

    //将ss所指字符串中所有下标为奇数位上的字母转换成大写,若不是字母,则不转换. #include <stdio.h> #include <string.h> void fun ...

  7. JS-011-颜色进制转换(RGB转16进制;16进制转RGB)

    在网页开发的时候,经常需要进行颜色设置,因而经常需要遇到进行颜色进制转换的问题,例如:RGB转16进制:16进制转RGB),前几天在测试的时候,发现网站的颜色进制转换某类16进制颜色(例如:#0000 ...

  8. ( 转)Sqlserver中tinyint, smallint, int, bigint的区别 及 10进制转换16进制的方法

    一.类型比较 bigint:从-2^63(-9223372036854775808)到2^63-1(9223372036854775807)的整型数据,存储大小为 8 个字节.一个字节就是8位,那么b ...

  9. C#中2、8、16进制 有符号转换10进制正负数

    曾经让我苦想的其他进制转有符号整型问题,结果自己想到方法解决后才发现原来如此简单. 1.Int16(2个byte长度 ) : 方法 :Convert.ToInt16(进制编码,进制) a.16进制转1 ...

随机推荐

  1. Request和Response的格式

    Request和Response的格式 Request格式: HTTP请求行  (请求)头  空行  可选的消息体 注:请求行和标题必须以<CR><LF> 作为结尾(也就是,回 ...

  2. 21 FragmentTabHost +Fragment代码案例

    注意头导航标签过多会被压缩并 结构 MainActivity.java package com.qf.day21_fragmenttabhost_demo1; import com.qf.day21_ ...

  3. iOS中监控软键盘显示或隐藏的可靠方法

    大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请多提意见,如果觉得不错请多多支持点赞.谢谢! hopy ;) 如果你试图在软键盘的显示或隐藏时去改变的UI界面结构,仅有的方 ...

  4. 【java集合框架源码剖析系列】java源码剖析之TreeSet

    本博客将从源码的角度带领大家学习TreeSet相关的知识. 一TreeSet类的定义: public class TreeSet<E> extends AbstractSet<E&g ...

  5. UNIX环境高级编程——I/O多路转接(select、pselect和poll)

    I/O多路转接:先构造一张有关描述符的列表,然后调用一个函数,直到这些描述符中的一个已准备好进行I/O时,该函数才返回.在返回时,它告诉进程哪些描述符已准备好可以进行I/O. poll.pselect ...

  6. 并发编程(二):分析Boost对 互斥量和条件变量的封装及实现生产者消费者问题

    请阅读上篇文章<并发编程实战: POSIX 使用互斥量和条件变量实现生产者/消费者问题>.当然不阅读亦不影响本篇文章的阅读. Boost的互斥量,条件变量做了很好的封装,因此比" ...

  7. Ajax分页 Spring MVC + Hibernate

    效果图: 1.  添加公共类.方法.代码 1.    分页类:Page.java package cn.com.aperfect.sso.base.dao; import java.util.Arra ...

  8. 谈谈Ext JS的组件——布局的使用方法续一

    盒子布局 盒子布局主要作用是以水平(Ext.layout.container.HBox)或垂直方式(Ext.layout.container.VBox)来划分容器区域.这也是比较常有的布局方式. 使用 ...

  9. C++ Primer 有感(面向对象编程)

    1.除了构造函数之外,任意非static成员函数都可以是虚函数.保留字virtual只在类内部的成员函数声明处出现,不能用在类定义体外部出现的函数定义上. 2.派生类只能通过派生类对象访问其基类的pr ...

  10. Python学习笔记 - 迭代Iteration

    #!/usr/bin/env python3 # -*- coding: utf-8 -*- d = {'a': 1, 'b': 2, 'c': 3} for key in d: # 默认迭代是key ...