`
zy3381
  • 浏览: 157513 次
  • 性别: Icon_minigender_1
  • 来自: 昆明
社区版块
存档分类
最新评论

十进制十六进制互转、数字转字符、日期转总天数

 
阅读更多
#include<stdio.h>
/*
    将十六进制转换成十进制输出
*/
void hex2dec(char *hex)
{
    int result = 0;
    int temp;
    while(*hex != '\0')
    {
        if(*hex>='0' && *hex<='9')
        {
            temp = *hex - '0';
        }
        else if(*hex>='A' && *hex<='F')
        {
            temp = *hex - 'A' + 10;
        }
        else if(*hex>='a' && *hex<='f')
        {
            temp = *hex - 'a' + 10;
        }
        result += temp;
        if(*(hex+1) != '\0')
        {
            result = result*16;
        }
        hex++;
    }
    printf("%d", result);
}

/*
    将十进制转换成十六进制输出
*/
void dec2hex(int dec)
{
    int hex;
    if(dec<16)
    {
        hex = dec;
    }
    else
    {
        //余数
        int x = dec%16;
        //对商进行递归
        dec2hex(dec/16);
        //递归最外层最后输出
        hex = x;
    }
    if(hex>9)
    {
        printf("%c", hex-10+'A');
    }
    else
    {
        printf("%c", hex+'0');
    }
}

/*
    将整数转换成字符串输出
*/
void int2char(int n)
{
    int r = n%10;
    int s = n/10;
    if(s==0)
    {
        printf("%c" ,n+'0');
    }
    else
    {
        int2char(s);
        printf("%c", r+'0');
    }
}
/*
    给定日期是当年的第几天
*/
int date2TotalDays(int year, int month, int day)
{
    int i,totalDays=0;
    int months[] = {31,28,31,30,31,30,31,30,31,30,31,30};
    if((year%4==0 && year%100!=0) || year%400==0)
    {
        months[1] = 29;
    }
    for(i=0; i<month-1; i++)
    {
        totalDays += months[i];
    }
    totalDays += day;
    return totalDays;
}
void main()
{
    hex2dec("12cd");
    printf("\n");
    dec2hex(1000);
    printf("\n");
    int2char(483);
    printf("\n");
    printf("%d", date2TotalDays(2014,3,7));
}

















分享到:
评论

相关推荐

    Numbers函数教程

    BIN2HEX - 将二进制数字转换为十六进制。 BIN2OCT - 将二进制数字转换为八进制。 CONVERT - 将数字从一种度量系统转换到另一种。 DELTA - 确定两个值是否相等。 ERF - 返回在两个值之间集成的错误函数。 ERFC - 返回...

    指针与字符串.rar

    同时,也可以用指针来遍历字符串,进行二进制、八进制、十进制或十六进制之间的转换。 3. **门禁卡**:这个程序可能涉及到了字符串的比较,如验证ID号码。可以使用字符串指针来比较两个字符串是否相等,或者使用...

    c#中ToString()的一些常用用法

    - 说明:`"D"` 表示十进制数格式,后面跟的数字指定输出字符串中包含的最小位数。如果原数值的位数不足,则会在前面补零。 3. **科学计数法格式 (E)** - 示例:`25000.ToString("E")` 输出:`2.500000E+005` - ...

    12.13_泊松变换_

    4. "0716传址函数,十六转十进制.cpp":可能涉及到使用传址函数将十六进制数字转换为十进制。 5. "0814传址函数,str倒序.cpp":可能是一个练习,要求使用传址函数将字符串倒序。 这些文件名暗示了各种编程技能的...

    收集整理的SQL Server自定义函数

    5.将十进制转成十六进制 8 6.求两个字符串中相同的汉字及字母的个数 10 7.生成n位随机字符串 11 8.取出字符串中的汉字、字母或是数字 14 9.根据字符分割字符串的三种写法 16 10.将数字转换千分位分隔形式 18 11.取...

    1-第9周1

    之后,使用`int.Parse()`或`Convert.ToInt32()`将十六进制字符串转换为十进制数。 5. **二维数组操作**: - 第五个题目涉及到二维数组的使用,包括初始化、输出矩阵、查找最大值及其位置。在C#中,二维数组可以...

    Android-Scientific-Calculator:一个具有运算、十六进制转换、日期计算和结果存储功能的安卓科学计算器 科学计算器

    这个计算器能够将十进制数字转换为十六进制,反之亦然。实现这个功能涉及到了数值的位操作、进制转换算法以及字符串格式化。开发者需要理解不同进制间的转换规则,并能有效地在二进制、八进制、十进制和十六进制之间...

    Excel函数用途、参数、用法速查表.docx

    5. **BIN2DECBIN2HEX**: 将二进制数转换为十进制、十六进制字符串。 6. **BIN2OCT**: 将二进制数转换为八进制字符串。 7. **COMPLEX**: 创建复数。 8. **CONVERT**: 在不同的度量单位系统之间转换数值。 9. **DEC2...

    Excel2003函数应用完全手册

    - 将十进制数转换为十六进制数。 - 参数包括十进制数、位数。 12. **DEC2OCT** - 将十进制数转换为八进制数。 - 参数包括十进制数、位数。 13. **DELTA** - 判断两个数值是否相等。 - 参数包括第一个数值和...

    office函数大全

    - **功能**:十六进制转十进制。 - **应用场景**:用于计算机科学中的数据处理。 ##### HEX2OCT - 将十六进制数转换为八进制数 - **功能**:十六进制转八进制。 - **应用场景**:用于计算机科学中的数据处理。 ###...

    delphi常用函數

    3. **IntToHex** - 十进制转十六进制字符串。此函数接受两个参数,一个是待转换的十进制数,另一个是输出的十六进制字符串的位数。示例:`Edit1.Text := IntToHex(100, 2);` 结果是"64"。 - 注意:Delphi没有直接...

    程序设计专题实验报告.doc

    这涉及到数的进制转换,需要理解二进制、八进制、十进制、十六进制等不同进制之间的转换规则。文件处理是另一个关键点,需要从输入文件中读取数据,存储和处理字符串,然后根据要求输出结果到文件。此外,还需要实现...

    DB2常用函数(初学者必备)

    - **Decimal**: 将数据转换为十进制数值。 - **Double**: 转换为双精度浮点数。 - **Integer**: 转换为整数。 - **Smallint**: 转换为短整型。 - **Real**: 转换为实数。 - **Hex**: 将数据转换为十六进制表示。 - *...

    PHPExcel Function Reference developer

    - **BIN2DEC()**、**BIN2HEX()**、**BIN2OCT()**:二进制到十进制、十六进制、八进制的转换。 - **COMPLEX()**:创建一个复数。 - **CONVERT()**:将一个单位的数字转换为另一个单位。 - **DEC2BIN()**、**DEC2HEX()...

    c#日期类源代码,包括闰年,节气,星座等等

    代码中包含了大量的十六进制数字,这些数字代表了从1901年到2050年的农历每个月的天数和月份信息。通过这些数据,可以实现农历日期的转换和计算。例如,`gLunarMonthDay` 数组中的每个十六进制值对应了一年中每个月...

    c++简单习题求两个整数的最大公约数和最小公倍

    7. 十六进制转十进制: 函数接受一个以字符数组形式表示的十六进制数,通过遍历数组,将每个字符转换为其对应的十进制值,累加得到结果。注意区分字母字符和数字字符。 8. 递归方法将整数转化为字符串: 使用递归...

    VB常用的几个内部函数

    - `Hex$(x)`:将十进制数`x`转换为十六进制字符串。 - `Oct$(x)`:将十进制数`x`转换为八进制字符串。 - `Asc(x$)`:返回字符串`x$`的第一个字符的ASCII码。 - `Chr$(x)`:将ASCII码`x`转换为对应的字符。 - `...

    2003常用函数完全手册(完善版)

    10. **OCT2BIN**、**OCT2DEC**、**OCT2HEX**:八进制数到二进制、十进制和十六进制的转换。 ##### (五)财务函数 财务函数主要用于金融和会计领域的计算,如折旧、利息支付、债券价值等。 1. **ACCRINT**、**...

    java第一次作业题目2015版

    6. **十进制转换**:分为两个子任务,一是将十进制数转换为二进制,二是转换为十六进制。不使用Java内置的转换函数,需要自定义算法实现。二进制转换可以采用除2取余法,十六进制则可以除16取余。 7. **回文整数...

Global site tag (gtag.js) - Google Analytics